Documentation
¶
Overview ¶
Package openapi provides OpenAPI 3.x document helpers generated from route metadata, plus Echo↔net/http adapter bridge utilities.
Index ¶
- func ChainStd(h http.Handler, mws ...StdMiddleware) http.Handler
- func EchoHandler(h http.Handler) echo.HandlerFunc
- func EchoHandlerFunc(h http.HandlerFunc) echo.HandlerFunc
- func EchoMiddleware(mw StdMiddleware) echo.MiddlewareFunc
- func MountStd(e *echo.Echo, method, path string, h http.Handler, mws ...echo.MiddlewareFunc) *echo.Route
- func StdHandler(e *echo.Echo, h echo.HandlerFunc) http.HandlerFunc
- type Components
- type Document
- type Info
- type Operation
- type Parameter
- type PathItem
- type Response
- type RouteMeta
- type Schema
- type StdMiddleware
- type Tag
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ChainStd ¶
func ChainStd(h http.Handler, mws ...StdMiddleware) http.Handler
ChainStd applies stdlib middlewares around a handler (outer-first).
func EchoHandler ¶
func EchoHandler(h http.Handler) echo.HandlerFunc
EchoHandler wraps a net/http Handler as an Echo handler via echo.WrapHandler.
func EchoHandlerFunc ¶
func EchoHandlerFunc(h http.HandlerFunc) echo.HandlerFunc
EchoHandlerFunc wraps a net/http HandlerFunc as an Echo handler.
func EchoMiddleware ¶
func EchoMiddleware(mw StdMiddleware) echo.MiddlewareFunc
EchoMiddleware converts a net/http middleware into Echo middleware via echo.WrapMiddleware.
func MountStd ¶
func MountStd(e *echo.Echo, method, path string, h http.Handler, mws ...echo.MiddlewareFunc) *echo.Route
MountStd mounts a net/http Handler on an Echo route group/path using WrapHandler.
func StdHandler ¶
func StdHandler(e *echo.Echo, h echo.HandlerFunc) http.HandlerFunc
StdHandler converts an Echo handler into a net/http HandlerFunc. The Echo instance is used only to create a context for the handler.
Types ¶
type Components ¶
type Components struct {
Schemas map[string]interface{} `json:"schemas,omitempty"`
SecuritySchemes map[string]interface{} `json:"securitySchemes,omitempty"`
}
Components holds reusable schemas and security schemes.
type Document ¶
type Document struct {
OpenAPI string `json:"openapi"`
Info Info `json:"info"`
Paths map[string]*PathItem `json:"paths"`
Components *Components `json:"components,omitempty"`
Tags []Tag `json:"tags,omitempty"`
}
Document is an OpenAPI 3 document.
func FromRoutes ¶
FromRoutes builds an OpenAPI document from route metadata.
func NewDocument ¶
NewDocument creates an OpenAPI 3.0.3 document.
func (*Document) AddOperation ¶
AddOperation registers an operation on path (e.g. "/users", "get").
func (*Document) MarshalJSON ¶
MarshalJSON returns the OpenAPI document as JSON.
type Info ¶
type Info struct {
Title string `json:"title"`
Version string `json:"version"`
Description string `json:"description,omitempty"`
}
Info holds API metadata.
type Operation ¶
type Operation struct {
OperationID string `json:"operationId,omitempty"`
Summary string `json:"summary,omitempty"`
Description string `json:"description,omitempty"`
Tags []string `json:"tags,omitempty"`
Parameters []Parameter `json:"parameters,omitempty"`
Responses map[string]*Response `json:"responses,omitempty"`
Security []map[string][]string `json:"security,omitempty"`
}
Operation describes a single HTTP operation.
type Parameter ¶
type Parameter struct {
Name string `json:"name"`
In string `json:"in"` // path, query, header, cookie
Required bool `json:"required,omitempty"`
Description string `json:"description,omitempty"`
Schema *Schema `json:"schema,omitempty"`
}
Parameter is a minimal OpenAPI parameter object.
type PathItem ¶
type PathItem struct {
Get *Operation `json:"get,omitempty"`
Post *Operation `json:"post,omitempty"`
Put *Operation `json:"put,omitempty"`
Patch *Operation `json:"patch,omitempty"`
Delete *Operation `json:"delete,omitempty"`
Head *Operation `json:"head,omitempty"`
Options *Operation `json:"options,omitempty"`
}
PathItem describes operations on a path.
type Response ¶
type Response struct {
Description string `json:"description"`
}
Response is a minimal response object.
type RouteMeta ¶
type RouteMeta struct {
Path string
Method string
OperationID string
Summary string
Description string
Tags []string
Parameters []Parameter
Responses map[string]*Response
Security []map[string][]string
}
RouteMeta describes a single HTTP route for OpenAPI generation.
type StdMiddleware ¶
StdMiddleware is a standard library middleware function.