Follow the CESSDA Technical Guidelines, in particular the 12-factor app principles.
This includes the loading of configuration settings from the environment.
The application exposes one port and has no external dependencies.
Defaults are: Cashier 1336, Coffee Machine 1337, Waiter 1338.
All APIs must have a health endpoint:
GET /healthcheck
Expected response
| Code | Content |
|---|---|
200 |
{"message: "Ok"} |
With each API call, a HTTP custom header X-Request-ID must be included.
UUID and treat that as the call’s X-Request-ID.X-Request-ID through all internal routines and include it in all log messages.X-Request-ID along all external API calls that occur as a consequence of processing the original call.STDOUT and STDERR for all calls and answers.X-Request-ID as custom field.To integrate with CESSDA Prometheus Metrics, a Prometheus compliant endpoint must be defined.
Implement at least one unit test.
A build script that pulls all dependencies, runs the test suite and creates the binary must be included.
The build script must be in the form of a Dockerfile.