Tiny URL example implementation in Go with the 🔥 Aicra framework.
Go to file
Adrien Marquès 2fa1f83345 ci: simplify 2019-05-04 00:08:38 +02:00
service use http.Method* instead of strings 2019-05-02 20:55:36 +02:00
storage fix postgres auto close 2019-05-02 19:13:17 +02:00
.drone.yml ci: simplify 2019-05-04 00:08:38 +02:00
.gitignore update 2018-07-07 23:09:19 +02:00
Dockerfile fix: semantic (comments) renaming : 'controller' to 'service', more explicit names 2019-05-02 07:54:06 +02:00
README.md fix docker command (expose port on the machine) 2018-10-02 10:53:45 +02:00
api.json new repo from git.xdrm.io/go/aicra@v0.2.0 2019-05-01 16:42:17 +02:00
go.mod fix: semantic (comments) renaming : 'controller' to 'service', more explicit names 2019-05-02 07:54:06 +02:00
go.sum fix postgres auto close 2019-05-02 19:13:17 +02:00
main.go minmod 2019-05-02 21:31:49 +02:00

README.md

xdrm go framework

1. Setup

You need a redis server running, if you don't have it, you can simply use a docker container for it with docker run -p 6379:6379 -d redis.

All commands above must be launched from the root of this repository.

2. Build type checkers, controllers, middlewares

Type checkers, controllers and middlewares have to be compiled beforehand. A build command exists for that purpose.

aicra <project-folder>

3. Launch the api

$ go run ./main.go

Now you can play with it with any regular REST API client at 127.0.0.1:4242.

1. Get an authentication token
  • POST /token/admin to get an authentication token.

2. Manage tiny urls

The authentication token must be set inside the Authorization header of each request except for the GET method.

  • POST /<some-url> to set a new tiny-url for the url <some-url> to redirect to the FORM variable named target. Also you can send the FORM data as x-www-form-urlencoded, form-data or json.
  • PUT /<some-url> to update an existing tiny-url for the url <some-url> to redirect to the FORM variable named target.
  • DELETE /<some-url> to delete the tiny-url for <some-url>.
  • GET /<some-url> to redirect to the target of an existing url `.