Implementing a URL shortening service using Postgres and pq
Let us write the URL shortening service to explain all the concepts we discussed in the preceding section. Before that, let us design a package that implements the Base62 algorithm with encoding/decoding functions. The URL shortening technique needs the Base62 algorithm to convert a long URL to short, and vice versa. We then write a solid example to show how this encoding works. Create a directory called base62
in the GOPATH
:
mkdir $GOPATH/src/github.com/narenaryan/base62
Now, add a file called encodeutils.go
, which houses our encode and decode functions.
Defining the Base62 algorithm
We saw how the Base62 algorithm works in the previous chapters. Here is the solid implementation of that algorithm. The logic is purely mathematical and can be found everywhere on the web. Take a look at the following code:
package base62 import ( "math" "strings" ) const base = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ...