Oapi-codegen: Difference between revisions
Jump to navigation
Jump to search
(→spec) |
|||
Line 39: | Line 39: | ||
oapi-codegen -generate types -package petstore ./petstore-expanded.yaml > ./internal/petstore/types.gen.go | oapi-codegen -generate types -package petstore ./petstore-expanded.yaml > ./internal/petstore/types.gen.go | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===spec=== | ===spec=== | ||
Generates this: | Generates this: | ||
<syntaxhighlight lang='go'> | <syntaxhighlight lang='go'> | ||
Line 57: | Line 54: | ||
func GetSwagger() (swagger *openapi3.T, err error) {...} | func GetSwagger() (swagger *openapi3.T, err error) {...} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===server=== | |||
===client=== |
Revision as of 03:36, 26 January 2024
External
Internal
Overview
Installation
Get the latest version from https://github.com/deepmap/oapi-codegen/tags
Then:
go install github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen@v2.1.0
The installation will place the package under $GOPATH/pkg/mod/cache/download/github.com/deepmap
and $GOPATH/pkg/mod/github.com/deepmap
, will compile the binary and place it under ~/go/bin
.
Generate Code
Generate client and server code:
oapi-codegen -package petstore ./petstore-expanded.yaml > ./internal/petstore/petstore.gen.go
go mod tidy
Options
-package
The package name for the generated code.
-generate
Comma-separated list of code to generate; valid options: "types", "client", "chi-server", "server", "gin", "gorilla", "spec", "skip-fmt", "skip-prune", "fiber", "iris". The default is "types,client,server,spec".
types
Generate the types declared in the <code/components/schemas section of the OpenAPI specification.
oapi-codegen -generate types -package petstore ./petstore-expanded.yaml > ./internal/petstore/types.gen.go
spec
Generates this:
var swaggerSpec = []string{...}
func decodeSpec() ([]byte, error) {...}
var rawSpec = decodeSpecCached()
func decodeSpecCached() func() ([]byte, error) {...}
func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {...}
func GetSwagger() (swagger *openapi3.T, err error) {...}