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. |