Every language must implement the following features:
Request:
GET /helloResponse:
{"msg": "Hello, world!"}Request:
GET /pingResponse:
{"msg": "pong"}The implementation must:
- expose an Open API doc at
/docs/openapi.json, - tag the "Hello API" endpoints with
exp, - and display swagger UI at the root (or redirect to a page with swagger UI from the root)
Each implementation must be setup such that users can open the language implementation folder within a development container and be able to develop, run, and debug the code in that environment.
Each implementation must pin or clearly specify direct & indirect dependencies as is idiomatic in that language.
Each implementation must support overriding configuration externally using config files or environment variables or both.
Each implementation must support structured logging. (TODO: elaborate)
Each implementation must include
- a
Dockerfilethat makes it possible to run the implementation in a container, - Docker compose support to make it easy to run the implementation locally.
Each implementation must provide a corresponding helm chart to make it easy to install the implementation to a Kubernetes environment.
Each implementation must include GitHub action workflows for the following:
- To build a docker image, and optionally publish it to
ghcr. - To publish the helm chart as an OCI artifact to
ghcr.
Each implementation must expose health check endpoints.