Documentation ¶
Overview ¶
Package openapi provides tools and mappings for OpenAPI specs.
Index ¶
- Constants
- func SanitizeMethodPath(method, pathPattern string) (cleanMethod string, cleanPath string, pathParams []string, err error)
- func WithContentType(contentType string) func(cu *ContentUnit)
- func WithHTTPStatus(httpStatus int) func(cu *ContentUnit)
- func WithOperationCtx(oc OperationContext, isProcessingResponse bool, in In) func(rc *jsonschema.ReflectContext)
- type ContentOption
- type ContentOrReference
- type ContentUnit
- type ContentUnitPreparer
- type In
- type JSONSchemaCallback
- type JSONSchemaWalker
- type OperationContext
- type OperationInfo
- type OperationInfoReader
- type OperationState
- type Reflector
- type RequestBodyEnforcer
- type RequestJSONBodyEnforcer
- type SpecSchema
Constants ¶
const ( InPath = In("path") InQuery = In("query") InHeader = In("header") InCookie = In("cookie") InFormData = In("formData") InBody = In("body") )
In values enumeration.
Variables ¶
This section is empty.
Functions ¶
func SanitizeMethodPath ¶
func SanitizeMethodPath(method, pathPattern string) (cleanMethod string, cleanPath string, pathParams []string, err error)
SanitizeMethodPath validates method and parses path element names.
func WithContentType ¶ added in v0.2.37
func WithContentType(contentType string) func(cu *ContentUnit)
WithContentType is a ContentUnit option.
func WithHTTPStatus ¶ added in v0.2.37
func WithHTTPStatus(httpStatus int) func(cu *ContentUnit)
WithHTTPStatus is a ContentUnit option.
func WithOperationCtx ¶
func WithOperationCtx(oc OperationContext, isProcessingResponse bool, in In) func(rc *jsonschema.ReflectContext)
WithOperationCtx is a jsonschema.ReflectContext option.
Types ¶
type ContentOption ¶
type ContentOption func(cu *ContentUnit)
ContentOption configures ContentUnit.
func WithCustomize ¶ added in v0.2.54
func WithCustomize(customize func(cor ContentOrReference)) ContentOption
WithCustomize is a ContentUnit option.
func WithReference ¶ added in v0.2.54
func WithReference(ref string) ContentOption
WithReference is a ContentUnit option.
type ContentOrReference ¶ added in v0.2.54
type ContentOrReference interface {
SetReference(ref string)
}
ContentOrReference defines content entity that can be a reference.
type ContentUnit ¶
type ContentUnit struct { Structure interface{} ContentType string Format string // HTTPStatus can have values 100-599 for single status, or 1-5 for status families (e.g. 2XX) HTTPStatus int // IsDefault indicates default response. IsDefault bool Description string // Customize allows fine control over prepared content entities. // The cor value can be asserted to one of these types: // *openapi3.RequestBodyOrRef // *openapi3.ResponseOrRef // *openapi31.RequestBodyOrReference // *openapi31.ResponseOrReference Customize func(cor ContentOrReference) // contains filtered or unexported fields }
ContentUnit defines HTTP content.
func (ContentUnit) FieldMapping ¶
func (c ContentUnit) FieldMapping(in In) map[string]string
FieldMapping returns custom field mapping.
func (*ContentUnit) SetFieldMapping ¶
func (c *ContentUnit) SetFieldMapping(in In, fieldToParamName map[string]string)
SetFieldMapping sets custom field mapping.
type ContentUnitPreparer ¶ added in v0.2.37
type ContentUnitPreparer interface {
SetupContentUnit(cu *ContentUnit)
}
ContentUnitPreparer defines self-contained ContentUnit.
type JSONSchemaCallback ¶
type JSONSchemaCallback func(in In, paramName string, schema *jsonschema.SchemaOrBool, required bool) error
JSONSchemaCallback is a user function called by JSONSchemaWalker.
type JSONSchemaWalker ¶
type JSONSchemaWalker interface { ResolveJSONSchemaRef(ref string) (s jsonschema.SchemaOrBool, found bool) WalkRequestJSONSchemas(method string, cu ContentUnit, cb JSONSchemaCallback, done func(oc OperationContext)) error WalkResponseJSONSchemas(cu ContentUnit, cb JSONSchemaCallback, done func(oc OperationContext)) error }
JSONSchemaWalker can extract JSON schemas (for example, for validation purposes) from a ContentUnit.
type OperationContext ¶
type OperationContext interface { OperationInfo OperationInfoReader OperationState Method() string PathPattern() string Request() []ContentUnit Response() []ContentUnit AddReqStructure(i interface{}, options ...ContentOption) AddRespStructure(o interface{}, options ...ContentOption) UnknownParamsAreForbidden(in In) bool }
OperationContext defines operation and processing state.
func OperationCtx ¶
func OperationCtx(rc *jsonschema.ReflectContext) (OperationContext, bool)
OperationCtx retrieves operation context from reflect context.
type OperationInfo ¶
type OperationInfo interface { SetTags(tags ...string) SetIsDeprecated(isDeprecated bool) SetSummary(summary string) SetDescription(description string) SetID(operationID string) AddSecurity(securityName string, scopes ...string) }
OperationInfo extends OperationContext with general information.
type OperationInfoReader ¶ added in v0.2.46
type OperationInfoReader interface { Tags() []string IsDeprecated() bool Summary() string Description() string ID() string }
OperationInfoReader exposes current state of operation context.
type OperationState ¶
type OperationState interface { IsProcessingResponse() bool ProcessingIn() In SetIsProcessingResponse(isProcessingResponse bool) SetProcessingIn(in In) }
OperationState extends OperationContext with processing state information.
type Reflector ¶
type Reflector interface { JSONSchemaWalker NewOperationContext(method, pathPattern string) (OperationContext, error) AddOperation(oc OperationContext) error SpecSchema() SpecSchema JSONSchemaReflector() *jsonschema.Reflector }
Reflector defines OpenAPI reflector behavior.
type RequestBodyEnforcer ¶
type RequestBodyEnforcer interface {
ForceRequestBody()
}
RequestBodyEnforcer enables request body for GET and HEAD methods.
Should be implemented on input structure, function body can be empty. Forcing request body is not recommended and should only be used for backwards compatibility.
type RequestJSONBodyEnforcer ¶
type RequestJSONBodyEnforcer interface {
ForceJSONRequestBody()
}
RequestJSONBodyEnforcer enables JSON request body for structures with `formData` tags.
Should be implemented on input structure, function body can be empty.
type SpecSchema ¶ added in v0.2.36
type SpecSchema interface { Title() string Description() string Version() string SetTitle(t string) SetDescription(d string) SetVersion(v string) SetHTTPBasicSecurity(securityName string, description string) SetAPIKeySecurity(securityName string, fieldName string, fieldIn In, description string) SetHTTPBearerTokenSecurity(securityName string, format string, description string) }
SpecSchema abstracts OpenAPI schema implementation to generalize multiple revisions.
Directories ¶
Path | Synopsis |
---|---|
Package internal keeps reusable internal code.
|
Package internal keeps reusable internal code. |
Package openapi3 provides entities and helpers to manage OpenAPI 3.0.x schema.
|
Package openapi3 provides entities and helpers to manage OpenAPI 3.0.x schema. |
Package openapi31 provides entities and helpers to manage OpenAPI 3.1.x schema.
|
Package openapi31 provides entities and helpers to manage OpenAPI 3.1.x schema. |