Documentation ¶
Overview ¶
Package generator contains the code generation algorithms for a service server, client, and OpenAPI specification.
Server and Client ¶
The code generated for the service server and client includes:
- A `service` package that contains the declarations for the service interfaces and endpoints which wrap the service methods.
- A `views` package that contains code to render a result type using a view.
- transport specific packages for each of the transports defined in the design.
- An example implementation of the client, server, and the service.
OpenAPI ¶
The OpenAPI generator generates a OpenAPI v2 specification for the service REST endpoints. This generator requires the design to define the HTTP transport.
Index ¶
- Variables
- func Example(genpkg string, roots []eval.Root) ([]*codegen.File, error)
- func Generate(dir, cmd string) ([]string, error)
- func OpenAPI(_ string, roots []eval.Root) ([]*codegen.File, error)
- func Service(genpkg string, roots []eval.Root) ([]*codegen.File, error)
- func Transport(genpkg string, roots []eval.Root) ([]*codegen.File, error)
- type Genfunc
Constants ¶
This section is empty.
Variables ¶
var Generators = generators
Generators returns the qualified paths (including the package name) to the code generator functions for the given command, an error if the command is not supported. Generators is a public variable so that external code (e.g. plugins) may override the default generators.
Functions ¶
func Example ¶
Example iterates through the roots and returns files that implement an example service, server, and client.
func OpenAPI ¶
OpenAPI iterates through the roots and returns the files needed to render the service OpenAPI spec. It produces OpenAPI specifications only if the roots define a HTTP service.