Short - simple go url shortner
Short is a very simple url shortener build in golang using gorilla/mux for url routing and go-cache for storring URLs, the main focus is speed, not data is persisted, but can be dumped and restored.
Syntax is
Usage of short:
-addr string
Address to listen for connections (default "localhost")
-domain string
Domain to write to the URLs (default "localhost")
-dump string
Path to the file to dump the kv db (default "urls.json")
-path string
Path to the base URL (https://localhost:8080/PATH/... remember to append a / at the end
-port string
Port to listen for connections (default "8080")
-proto string
proto to the base URL (HTTPS://localhost:8080/path/... no real https here just to set the url (for like a proxy offloading https (default "https")
-v
prints current version
Includes a Dockerfile to for a standalone docker image.
To shorten a URL just post on /, you will get a reply with the shortened URL
curl -X POST -d "url=http://google.com" http://localhost:8080/
URL shortened at: https://localhost:8080/9mbIcOwsVP
Dump/Restore endpoints
URL mapping data can be checked, listed, dumped and restored in the given endpoints:
Show the number of mapped urls
$ curl http://localhost:8080/v1/count
X
Dumps the mapped url to json
$ curl http://localhost:8080/v1/dump
[...] #json of mapped urls
Dump the mapped url to -dump
file (defaults to ./urls.json)
$ curl http://localhost:8080/v1/dumpToFile
Dump writen to: urls.json
Load url mappings from -dump
file to in memory db
$ curl http://localhost:8080/v1/fromFile
OK
Load url mappings from POST data (Assuming json data on save.json file)
$ curl -X POST http://localhost:8080/v1/fromPost \
-H "Content-Type: application/json" \
--data $(cat save.json )
OK
Description
Languages
Go
71.3%
HTML
27.6%
Dockerfile
1.1%