README
¶
go-restful-openapi
openapi extension to the go-restful package, targeting version 2.0
The following Go field tags are translated to OpenAPI equivalents
- description
- minimum
- maximum
- optional ( if set to "true" then it is not listed in
required
) - unique
- modelDescription
- type (overrides the Go type String())
- enum
See TestThatExtraTagsAreReadIntoModel for examples.
dependencies
© 2017, ernestmicklei.com. MIT License. Contributions welcome.
Documentation
¶
Index ¶
Constants ¶
const KeyOpenAPITags = "openapi.tags"
KeyOpenAPITags is a Metadata key for a restful Route
Variables ¶
This section is empty.
Functions ¶
func BuildSwagger ¶
BuildSwagger returns a Swagger object for all services' API endpoints.
func NewOpenAPIService ¶
func NewOpenAPIService(config Config) *restful.WebService
NewOpenAPIService returns a new WebService that provides the API documentation of all services conform the OpenAPI documentation specifcation.
Types ¶
type Config ¶
type Config struct { // WebServicesURL is the url where the services are available, e.g. http://localhost:8080 // if left empty then the basePath of Swagger is taken from the actual request WebServicesURL string // APIPath is the path where the JSON api is avaiable , e.g. /apidocs.json APIPath string // api listing is constructed from this list of restful WebServices. WebServices []*restful.WebService // [optional] on default CORS (Cross-Origin-Resource-Sharing) is enabled. DisableCORS bool // Top-level API version. Is reflected in the resource listing. APIVersion string // [optional] If set, model builder should call this handler to get addition typename-to-swagger-format-field conversion. SchemaFormatHandler MapSchemaFormatFunc // [optional] If set, model builder should call this handler to retrieve the name for a given type. ModelTypeNameHandler MapModelTypeNameFunc // [optional] If set then call this function with the generated Swagger Object PostBuildSwaggerObjectHandler PostBuildSwaggerObjectFunc }
Config holds service api metadata.
type MapModelTypeNameFunc ¶
MapModelTypeNameFunc can be used to return the desired typeName for a given type. It will return false if the default name should be used. To use it set the ModelTypeNameHandler in the config.
type MapSchemaFormatFunc ¶
MapSchemaFormatFunc can be used to modify typeName at definition time. To use it set the SchemaFormatHandler in the config.
type PostBuildSwaggerObjectFunc ¶
PostBuildSwaggerObjectFunc can be used to change the creates Swagger Object before serving it. To use it set the PostBuildSwaggerObjectHandler in the config.