Documentation ¶
Overview ¶
Package openapi3filter validates that requests and inputs request an OpenAPI 3 specification file.
Index ¶
- Variables
- func TrimJSONPrefix(data []byte) []byte
- func ValidateParameter(c context.Context, input *RequestValidationInput, ...) error
- func ValidateRequest(c context.Context, input *RequestValidationInput) error
- func ValidateRequestBody(c context.Context, input *RequestValidationInput, ...) error
- func ValidateResponse(c context.Context, input *ResponseValidationInput) error
- func ValidateSecurityRequirements(c context.Context, input *RequestValidationInput, ...) error
- type AuthenticationInput
- type Options
- type RequestError
- type RequestValidationInput
- type ResponseError
- type ResponseValidationInput
- type Route
- type RouteError
- type Router
- func (router *Router) AddRoute(route *Route) error
- func (router *Router) AddSwagger(swagger *openapi3.Swagger) error
- func (router *Router) AddSwaggerFromFile(path string) error
- func (router *Router) FindRoute(method string, url *url.URL) (*Route, map[string]string, error)
- func (router *Router) WithSwagger(swagger *openapi3.Swagger) *Router
- func (router *Router) WithSwaggerFromFile(path string) *Router
- type Routers
- type SecurityRequirementsError
Constants ¶
This section is empty.
Variables ¶
var DefaultJSONMediaTypes = []string{
"application/json",
}
Definition of MediaType to be interpreted as JSON
var DefaultOptions = &Options{}
var (
ErrAuthenticationServiceMissing = errors.New("Request validator doesn't have an authentication service defined")
)
var JSONPrefixes = []string{
")]}',\n",
}
Functions ¶
func TrimJSONPrefix ¶
TrimJSONPrefix trims one of the possible prefixes
func ValidateParameter ¶
func ValidateRequest ¶
func ValidateRequest(c context.Context, input *RequestValidationInput) error
func ValidateRequestBody ¶
func ValidateRequestBody(c context.Context, input *RequestValidationInput, requestBody *openapi3.RequestBody) error
func ValidateResponse ¶
func ValidateResponse(c context.Context, input *ResponseValidationInput) error
func ValidateSecurityRequirements ¶
func ValidateSecurityRequirements(c context.Context, input *RequestValidationInput, srs openapi3.SecurityRequirements) error
ValidateSecurityRequirements validates a multiple OpenAPI 3 security requirements. Returns nil if one of them inputed. Otherwise returns an error describing the security failures.
Types ¶
type AuthenticationInput ¶
type AuthenticationInput struct { RequestValidationInput *RequestValidationInput SecuritySchemeName string SecurityScheme *openapi3.SecurityScheme Scopes []string }
func (*AuthenticationInput) NewError ¶
func (input *AuthenticationInput) NewError(err error) error
type RequestError ¶
type RequestError struct { Input *RequestValidationInput Parameter *openapi3.Parameter RequestBody *openapi3.RequestBody Status int Reason string Err error }
func (*RequestError) Error ¶
func (err *RequestError) Error() string
func (*RequestError) HTTPStatus ¶
func (err *RequestError) HTTPStatus() int
type RequestValidationInput ¶
type RequestValidationInput struct { Request *http.Request PathParams map[string]string QueryParams url.Values Route *Route Options *Options }
func (*RequestValidationInput) GetQueryParams ¶
func (input *RequestValidationInput) GetQueryParams() url.Values
type ResponseError ¶
type ResponseError struct { Input *ResponseValidationInput Reason string Err error }
func (*ResponseError) Error ¶
func (err *ResponseError) Error() string
type ResponseValidationInput ¶
type ResponseValidationInput struct { RequestValidationInput *RequestValidationInput Status int Header http.Header Body io.ReadCloser Options *Options }
func (*ResponseValidationInput) SetBodyBytes ¶
func (input *ResponseValidationInput) SetBodyBytes(value []byte) *ResponseValidationInput
type RouteError ¶
func (*RouteError) Error ¶
func (err *RouteError) Error() string
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
Router maps a HTTP request to an OpenAPI operation.
func NewRouter ¶
func NewRouter() *Router
NewRouter creates a new router.
If the given Swagger has servers, router will use them. All operations of the Swagger will be added to the router.
func (*Router) AddSwagger ¶
AddSwagger adds all operations in the OpenAPI specification.
func (*Router) AddSwaggerFromFile ¶
AddSwaggerFromFile loads the Swagger file and adds it using AddSwagger.
func (*Router) WithSwagger ¶
WithSwagger adds all operations in the OpenAPI specification. Panics on any error.
func (*Router) WithSwaggerFromFile ¶
WithSwaggerFromFile loads the Swagger file and adds it using WithSwagger. Panics on any error.
type SecurityRequirementsError ¶
type SecurityRequirementsError struct { SecurityRequirements openapi3.SecurityRequirements Errors []error }
func (*SecurityRequirementsError) Error ¶
func (err *SecurityRequirementsError) Error() string