Generates Go server code from a combination of REST and Workflow DSLs.
A codon service has three components:
Server
: Accepts and validates HTTP requestsClients
: Clients for upstream services which this service consumesWorkflows
: Procedures for every REST endpoint of this server which consume Clients and other custom actions.
Server and Client side specifications are written in Swagger. Swagger code generation is done through go-swagger. Workflow is written in Flow
, a Mistral inspired workflow specification in YAML. Its specification can be found here.
Check out wiki section for more information. Follow this tutorial for a very basic example on how to use this tool.
(Or just projects I am really thankful for)
- go-swagger: Provides code generators for client and server side components using Swagger specification.
- go-jmespath: Allows for easy querying and manipulation of json objects in workflows.
- Pongo2: Django template renderer. Used for templates and workflow expressions in codon.
- Mistral DSL: A workflow spec used for infrastructure orchestration. Codon's workflow DSL is inspired from Mistral's but modified for use in REST context.
- mapstructure