This OpenAPI first proof of concept seeks to prove out a few things:
- Generate OpenAPI models from external protobuf files
- Generate OpenAPI request bodies from annotations in external protobuf files
- Reliably consume generated models in OpenAPI spec without breaking things even when regenerated
- Use Kong grpc-gateway to map Kong routes to gRPC calls
- Modifying routes in spec automatically adds and removes routes from the Kong configuration
- Validate tokens at the edge with public key
- Datadog tracing and logging
To start Kong and a mock gRPC service:
make kong-dbless
- Add Gripmock
- Stand up basic Kong service
- Add healthz endpoint
- Add JWT validation
- Create a templating script to load values dynamically
- Create entrypoint script to run templating before loading the service
- Make protoc plugin to generate OpenAPI model and request bodies from protos
- Generate OpenAPI models from external protobufs
- Generate OpenAPI request bodies from external protobuf annotations
- Create container or single command script to run these actions
- Add Datadog tracing and logging
- Build a Dockerfile for base Kong container
- Demonstrate using git submodule to load remote protos