# Go Maths students API A simple Go API whose only purpose is to check whether an user is a Maths student or not. ## Prerequisites - An environment variable `AUTHPDS_TOKEN` containing the authentication token for the external API. - An environment variable named `SECRET` containing the secret token for authorization. ## Development ### Development ```bash shell # Create a ".env" file from the given template and update as needed $ cp .env.example .env # Start the server $ go run -v . # Build to binary $ go build -v -o ./bin/go-maths-api . ``` ### Deploy To build and run the image from the provided `Dockerfile`: ```bash shell # Create a ".env" file from the given template and update as needed $ cp .env.example .env $ docker build -t go-maths-api . $ docker run -d --restart always -p 8080:8080 --name go-maths-api go-maths-api ``` ### Client Usage An example request to the local Docker image (with `SECRET` defined in your environment): ```bash shell $ curl "localhost:8080/check-maths-user?user=f.minnocci" -H "Authorization: Bearer $SECRET" ``` Successful JSON response: ```json { "result": true } ``` ## Notes - TODO: Add a small 1-day cache - Original code idea: - The first iteration of this project was generated this ChatGPT conversation: