Documentation

Overview

Package openapi3 parses and writes OpenAPI 3 specifications.

The OpenAPI 3.0 specification can be found at:

https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md

Index

Examples

Constants

const (
	ParameterInPath   = "path"
	ParameterInQuery  = "query"
	ParameterInHeader = "header"
	ParameterInCookie = "cookie"
)

const (
	SerializationSimple         = "simple"
	SerializationLabel          = "label"
	SerializationMatrix         = "matrix"
	SerializationForm           = "form"
	SerializationSpaceDelimited = "spaceDelimited"
	SerializationPipeDelimited  = "pipeDelimited"
	SerializationDeepObject     = "deepObject"
)

const (
	// FormatOfStringForUUIDOfRFC4122 is an optional predefined format for UUID v1-v5 as specified by RFC4122
	FormatOfStringForUUIDOfRFC4122 = `^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$`
)

Variables

var (
	// SchemaErrorDetailsDisabled disables printing of details about schema errors.
	SchemaErrorDetailsDisabled = false

	//SchemaFormatValidationDisabled disables validation of schema type formats.
	SchemaFormatValidationDisabled = false

	// ErrSchemaInputNaN may be returned when validating a number
	ErrSchemaInputNaN = errors.New("NaN is not allowed")
	// ErrSchemaInputInf may be returned when validating a number
	ErrSchemaInputInf = errors.New("Inf is not allowed")
)

var IdentifierRegExp = regexp.MustCompile(identifierPattern)

IdentifierRegExp verifies whether Component object key matches 'identifierPattern' pattern, according to OapiAPI v3.x.0. Hovever, to be able supporting legacy OpenAPI v2.x, there is a need to customize above pattern in orde not to fail converted v2-v3 validation


var SchemaStringFormats = make(map[string]Format, 8)

SchemaStringFormats allows for validating strings format


Functions

func BoolPtr

func BoolPtr(value bool) *bool

BoolPtr is a helper for defining OpenAPI schemas.

func DefineIPv4Format

func DefineIPv4Format()

DefineIPv4Format opts in ipv4 format validation on top of OAS 3 spec

func DefineIPv6Format

func DefineIPv6Format()

DefineIPv6Format opts in ipv6 format validation on top of OAS 3 spec

func DefineStringFormat

func DefineStringFormat(name string, pattern string)

DefineStringFormat Defines a new regexp pattern for a given format

func DefineStringFormatCallback

func DefineStringFormatCallback(name string, callback FormatCallback)

DefineStringFormatCallback adds a validation function for a specific schema format entry

func Float64Ptr

func Float64Ptr(value float64) *float64

Float64Ptr is a helper for defining OpenAPI schemas.

func Int64Ptr

func Int64Ptr(value int64) *int64

Int64Ptr is a helper for defining OpenAPI schemas.

func RegisterArrayUniqueItemsChecker

func RegisterArrayUniqueItemsChecker(fn SliceUniqueItemsChecker)

RegisterArrayUniqueItemsChecker is used to register a customized function used to check if JSON array have unique items.

func Uint64Ptr

func Uint64Ptr(value uint64) *uint64

Uint64Ptr is a helper for defining OpenAPI schemas.

func ValidateIdentifier

func ValidateIdentifier(value string) error

Types

type Callback

type Callback map[string]*PathItem

Callback is specified by OpenAPI/Swagger standard version 3.0.

func (Callback) Validate

func (value Callback) Validate(c context.Context) error

type CallbackRef

type CallbackRef struct {
	Ref   string
	Value *Callback
}

func (*CallbackRef) MarshalJSON

func (value *CallbackRef) MarshalJSON() ([]byte, error)

func (*CallbackRef) UnmarshalJSON

func (value *CallbackRef) UnmarshalJSON(data []byte) error

func (*CallbackRef) Validate

func (value *CallbackRef) Validate(c context.Context) error

type Components

type Components struct {
	ExtensionProps
	Schemas         map[string]*SchemaRef         `json:"schemas,omitempty" yaml:"schemas,omitempty"`
	Parameters      map[string]*ParameterRef      `json:"parameters,omitempty" yaml:"parameters,omitempty"`
	Headers         map[string]*HeaderRef         `json:"headers,omitempty" yaml:"headers,omitempty"`
	RequestBodies   map[string]*RequestBodyRef    `json:"requestBodies,omitempty" yaml:"requestBodies,omitempty"`
	Responses       map[string]*ResponseRef       `json:"responses,omitempty" yaml:"responses,omitempty"`
	SecuritySchemes map[string]*SecuritySchemeRef `json:"securitySchemes,omitempty" yaml:"securitySchemes,omitempty"`
	Examples        map[string]*ExampleRef        `json:"examples,omitempty" yaml:"examples,omitempty"`
	Links           map[string]*LinkRef           `json:"links,omitempty" yaml:"links,omitempty"`
	Callbacks       map[string]*CallbackRef       `json:"callbacks,omitempty" yaml:"callbacks,omitempty"`
}

Components is specified by OpenAPI/Swagger standard version 3.0.

func NewComponents

func NewComponents() Components

func (*Components) MarshalJSON

func (components *Components) MarshalJSON() ([]byte, error)

func (*Components) UnmarshalJSON

func (components *Components) UnmarshalJSON(data []byte) error

func (*Components) Validate

func (components *Components) Validate(c context.Context) (err error)

type Contact

type Contact struct {
	ExtensionProps
	Name  string `json:"name,omitempty" yaml:"name,omitempty"`
	URL   string `json:"url,omitempty" yaml:"url,omitempty"`
	Email string `json:"email,omitempty" yaml:"email,omitempty"`
}

Contact is specified by OpenAPI/Swagger standard version 3.0.

func (*Contact) MarshalJSON

func (value *Contact) MarshalJSON() ([]byte, error)

func (*Contact) UnmarshalJSON

func (value *Contact) UnmarshalJSON(data []byte) error

func (*Contact) Validate

func (value *Contact) Validate(c context.Context) error

type Content

type Content map[string]*MediaType

Content is specified by OpenAPI/Swagger 3.0 standard.

func NewContent

func NewContent() Content

func NewContentWithFormDataSchema

func NewContentWithFormDataSchema(schema *Schema) Content

func NewContentWithFormDataSchemaRef

func NewContentWithFormDataSchemaRef(schema *SchemaRef) Content

func NewContentWithJSONSchema

func NewContentWithJSONSchema(schema *Schema) Content

func NewContentWithJSONSchemaRef

func NewContentWithJSONSchemaRef(schema *SchemaRef) Content

func NewContentWithSchema

func NewContentWithSchema(schema *Schema, consumes []string) Content

func NewContentWithSchemaRef

func NewContentWithSchemaRef(schema *SchemaRef, consumes []string) Content

func (Content) Get

func (content Content) Get(mime string) *MediaType

func (Content) Validate

func (content Content) Validate(c context.Context) error

type Discriminator

type Discriminator struct {
	ExtensionProps
	PropertyName string            `json:"propertyName" yaml:"propertyName"`
	Mapping      map[string]string `json:"mapping,omitempty" yaml:"mapping,omitempty"`
}

Discriminator is specified by OpenAPI/Swagger standard version 3.0.

func (*Discriminator) MarshalJSON

func (value *Discriminator) MarshalJSON() ([]byte, error)

func (*Discriminator) UnmarshalJSON

func (value *Discriminator) UnmarshalJSON(data []byte) error

func (*Discriminator) Validate

func (value *Discriminator) Validate(c context.Context) error

type Encoding

type Encoding struct {
	ExtensionProps

	ContentType   string                `json:"contentType,omitempty" yaml:"contentType,omitempty"`
	Headers       map[string]*HeaderRef `json:"headers,omitempty" yaml:"headers,omitempty"`
	Style         string                `json:"style,omitempty" yaml:"style,omitempty"`
	Explode       *bool                 `json:"explode,omitempty" yaml:"explode,omitempty"`
	AllowReserved bool                  `json:"allowReserved,omitempty" yaml:"allowReserved,omitempty"`
}

Encoding is specified by OpenAPI/Swagger 3.0 standard.

func NewEncoding

func NewEncoding() *Encoding

func (*Encoding) MarshalJSON

func (encoding *Encoding) MarshalJSON() ([]byte, error)

func (*Encoding) SerializationMethod

func (encoding *Encoding) SerializationMethod() *SerializationMethod

SerializationMethod returns a serialization method of request body. When serialization method is not defined the method returns the default serialization method.

func (*Encoding) UnmarshalJSON

func (encoding *Encoding) UnmarshalJSON(data []byte) error

func (*Encoding) Validate

func (encoding *Encoding) Validate(c context.Context) error

func (*Encoding) WithHeader

func (encoding *Encoding) WithHeader(name string, header *Header) *Encoding

func (*Encoding) WithHeaderRef

func (encoding *Encoding) WithHeaderRef(name string, ref *HeaderRef) *Encoding

type Example

type Example struct {
	ExtensionProps

	Summary       string      `json:"summary,omitempty" yaml:"summary,omitempty"`
	Description   string      `json:"description,omitempty" yaml:"description,omitempty"`
	Value         interface{} `json:"value,omitempty" yaml:"value,omitempty"`
	ExternalValue string      `json:"externalValue,omitempty" yaml:"externalValue,omitempty"`
}

Example is specified by OpenAPI/Swagger 3.0 standard.

func NewExample

func NewExample(value interface{}) *Example

func (*Example) MarshalJSON

func (example *Example) MarshalJSON() ([]byte, error)

func (*Example) UnmarshalJSON

func (example *Example) UnmarshalJSON(data []byte) error

type ExampleRef

type ExampleRef struct {
	Ref   string
	Value *Example
}

func (*ExampleRef) MarshalJSON

func (value *ExampleRef) MarshalJSON() ([]byte, error)

func (*ExampleRef) UnmarshalJSON

func (value *ExampleRef) UnmarshalJSON(data []byte) error

func (*ExampleRef) Validate

func (value *ExampleRef) Validate(c context.Context) error

type ExtensionProps

type ExtensionProps struct {
	Extensions map[string]interface{} `json:"-" yaml:"-"`
}

ExtensionProps provides support for OpenAPI extensions. It reads/writes all properties that begin with "x-".

func (*ExtensionProps) DecodeWith

func (props *ExtensionProps) DecodeWith(decoder *jsoninfo.ObjectDecoder, value interface{}) error

DecodeWith will be invoked by package "jsoninfo"

func (*ExtensionProps) EncodeWith

func (props *ExtensionProps) EncodeWith(encoder *jsoninfo.ObjectEncoder, value interface{}) error

EncodeWith will be invoked by package "jsoninfo"

type ExternalDocs

type ExternalDocs struct {
	ExtensionProps

	Description string `json:"description,omitempty"`
	URL         string `json:"url,omitempty"`
}

ExternalDocs is specified by OpenAPI/Swagger standard version 3.0.

func (*ExternalDocs) MarshalJSON

func (e *ExternalDocs) MarshalJSON() ([]byte, error)

func (*ExternalDocs) UnmarshalJSON

func (e *ExternalDocs) UnmarshalJSON(data []byte) error

type Format

type Format struct {
	// contains filtered or unexported fields
}

type FormatCallback

type FormatCallback func(Val string) error

FormatCallback custom check on exotic formats

type Header struct {
	ExtensionProps

	// Optional description. Should use CommonMark syntax.
	Description string                 `json:"description,omitempty" yaml:"description,omitempty"`
	Deprecated  bool                   `json:"deprecated,omitempty" yaml:"deprecated,omitempty"`
	Required    bool                   `json:"required,omitempty" yaml:"required,omitempty"`
	Schema      *SchemaRef             `json:"schema,omitempty" yaml:"schema,omitempty"`
	Example     interface{}            `json:"example,omitempty" yaml:"example,omitempty"`
	Examples    map[string]*ExampleRef `json:"examples,omitempty" yaml:"examples,omitempty"`
	Content     Content                `json:"content,omitempty" yaml:"content,omitempty"`
}

func (*Header) UnmarshalJSON

func (value *Header) UnmarshalJSON(data []byte) error

func (*Header) Validate

func (value *Header) Validate(c context.Context) error

type HeaderRef

type HeaderRef struct {
	Ref   string
	Value *Header
}

func (*HeaderRef) MarshalJSON

func (value *HeaderRef) MarshalJSON() ([]byte, error)

func (*HeaderRef) UnmarshalJSON

func (value *HeaderRef) UnmarshalJSON(data []byte) error

func (*HeaderRef) Validate

func (value *HeaderRef) Validate(c context.Context) error

type Info

type Info struct {
	ExtensionProps
	Title          string   `json:"title" yaml:"title"` // Required
	Description    string   `json:"description,omitempty" yaml:"description,omitempty"`
	TermsOfService string   `json:"termsOfService,omitempty" yaml:"termsOfService,omitempty"`
	Contact        *Contact `json:"contact,omitempty" yaml:"contact,omitempty"`
	License        *License `json:"license,omitempty" yaml:"license,omitempty"`
	Version        string   `json:"version" yaml:"version"` // Required
}

Info is specified by OpenAPI/Swagger standard version 3.0.

func (*Info) MarshalJSON

func (value *Info) MarshalJSON() ([]byte, error)

func (*Info) UnmarshalJSON

func (value *Info) UnmarshalJSON(data []byte) error

func (*Info) Validate

func (value *Info) Validate(c context.Context) error

type License

type License struct {
	ExtensionProps
	Name string `json:"name" yaml:"name"` // Required
	URL  string `json:"url,omitempty" yaml:"url,omitempty"`
}

License is specified by OpenAPI/Swagger standard version 3.0.

func (*License) MarshalJSON

func (value *License) MarshalJSON() ([]byte, error)

func (*License) UnmarshalJSON

func (value *License) UnmarshalJSON(data []byte) error

func (*License) Validate

func (value *License) Validate(c context.Context) error
type Link struct {
	ExtensionProps
	OperationID  string                 `json:"operationId,omitempty" yaml:"operationId,omitempty"`
	OperationRef string                 `json:"operationRef,omitempty" yaml:"operationRef,omitempty"`
	Description  string                 `json:"description,omitempty" yaml:"description,omitempty"`
	Parameters   map[string]interface{} `json:"parameters,omitempty" yaml:"parameters,omitempty"`
	Server       *Server                `json:"server,omitempty" yaml:"server,omitempty"`
	RequestBody  interface{}            `json:"requestBody,omitempty" yaml:"requestBody,omitempty"`
}

Link is specified by OpenAPI/Swagger standard version 3.0.

func (*Link) MarshalJSON

func (value *Link) MarshalJSON() ([]byte, error)

func (*Link) UnmarshalJSON

func (value *Link) UnmarshalJSON(data []byte) error

func (*Link) Validate

func (value *Link) Validate(c context.Context) error

type LinkRef

type LinkRef struct {
	Ref   string
	Value *Link
}

func (*LinkRef) MarshalJSON

func (value *LinkRef) MarshalJSON() ([]byte, error)

func (*LinkRef) UnmarshalJSON

func (value *LinkRef) UnmarshalJSON(data []byte) error

func (*LinkRef) Validate

func (value *LinkRef) Validate(c context.Context) error

type MediaType

type MediaType struct {
	ExtensionProps

	Schema   *SchemaRef             `json:"schema,omitempty" yaml:"schema,omitempty"`
	Example  interface{}            `json:"example,omitempty" yaml:"example,omitempty"`
	Examples map[string]*ExampleRef `json:"examples,omitempty" yaml:"examples,omitempty"`
	Encoding map[string]*Encoding   `json:"encoding,omitempty" yaml:"encoding,omitempty"`
}

MediaType is specified by OpenAPI/Swagger 3.0 standard.

func NewMediaType

func NewMediaType() *MediaType

func (*MediaType) MarshalJSON

func (mediaType *MediaType) MarshalJSON() ([]byte, error)

func (*MediaType) UnmarshalJSON

func (mediaType *MediaType) UnmarshalJSON(data []byte) error

func (*MediaType) Validate

func (mediaType *MediaType) Validate(c context.Context) error

func (*MediaType) WithEncoding

func (mediaType *MediaType) WithEncoding(name string, enc *Encoding) *MediaType

func (*MediaType) WithExample

func (mediaType *MediaType) WithExample(name string, value interface{}) *MediaType

func (*MediaType) WithSchema

func (mediaType *MediaType) WithSchema(schema *Schema) *MediaType

func (*MediaType) WithSchemaRef

func (mediaType *MediaType) WithSchemaRef(schema *SchemaRef) *MediaType

type MultiError

type MultiError []error

MultiError is a collection of errors, intended for when multiple issues need to be reported upstream

func (MultiError) As

func (me MultiError) As(target interface{}) bool

As allows you to use `errors.As()` to set target to the first error within the multi error that matches the target type

func (MultiError) Error

func (me MultiError) Error() string

func (MultiError) Is

func (me MultiError) Is(target error) bool

Is allows you to determine if a generic error is in fact a MultiError using `errors.Is()` It will also return true if any of the contained errors match target

type OAuthFlow

type OAuthFlow struct {
	ExtensionProps
	AuthorizationURL string            `json:"authorizationUrl,omitempty" yaml:"authorizationUrl,omitempty"`
	TokenURL         string            `json:"tokenUrl,omitempty" yaml:"tokenUrl,omitempty"`
	RefreshURL       string            `json:"refreshUrl,omitempty" yaml:"refreshUrl,omitempty"`
	Scopes           map[string]string `json:"scopes" yaml:"scopes"`
}

func (*OAuthFlow) MarshalJSON

func (flow *OAuthFlow) MarshalJSON() ([]byte, error)

func (*OAuthFlow) UnmarshalJSON

func (flow *OAuthFlow) UnmarshalJSON(data []byte) error

func (*OAuthFlow) Validate

func (flow *OAuthFlow) Validate(c context.Context, typ oAuthFlowType) error

type OAuthFlows

type OAuthFlows struct {
	ExtensionProps
	Implicit          *OAuthFlow `json:"implicit,omitempty" yaml:"implicit,omitempty"`
	Password          *OAuthFlow `json:"password,omitempty" yaml:"password,omitempty"`
	ClientCredentials *OAuthFlow `json:"clientCredentials,omitempty" yaml:"clientCredentials,omitempty"`
	AuthorizationCode *OAuthFlow `json:"authorizationCode,omitempty" yaml:"authorizationCode,omitempty"`
}

func (*OAuthFlows) MarshalJSON

func (flows *OAuthFlows) MarshalJSON() ([]byte, error)

func (*OAuthFlows) UnmarshalJSON

func (flows *OAuthFlows) UnmarshalJSON(data []byte) error

func (*OAuthFlows) Validate

func (flows *OAuthFlows) Validate(c context.Context) error

type Operation

type Operation struct {
	ExtensionProps

	// Optional tags for documentation.
	Tags []string `json:"tags,omitempty" yaml:"tags,omitempty"`

	// Optional short summary.
	Summary string `json:"summary,omitempty" yaml:"summary,omitempty"`

	// Optional description. Should use CommonMark syntax.
	Description string `json:"description,omitempty" yaml:"description,omitempty"`

	// Optional operation ID.
	OperationID string `json:"operationId,omitempty" yaml:"operationId,omitempty"`

	// Optional parameters.
	Parameters Parameters `json:"parameters,omitempty" yaml:"parameters,omitempty"`

	// Optional body parameter.
	RequestBody *RequestBodyRef `json:"requestBody,omitempty" yaml:"requestBody,omitempty"`

	// Responses.
	Responses Responses `json:"responses" yaml:"responses"` // Required

	// Optional callbacks
	Callbacks map[string]*CallbackRef `json:"callbacks,omitempty" yaml:"callbacks,omitempty"`

	Deprecated bool `json:"deprecated,omitempty" yaml:"deprecated,omitempty"`

	// Optional security requirements that overrides top-level security.
	Security *SecurityRequirements `json:"security,omitempty" yaml:"security,omitempty"`

	// Optional servers that overrides top-level servers.
	Servers *Servers `json:"servers,omitempty" yaml:"servers,omitempty"`

	ExternalDocs *ExternalDocs `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"`
}

Operation represents "operation" specified by" OpenAPI/Swagger 3.0 standard.

func NewOperation

func NewOperation() *Operation

func (*Operation) AddParameter

func (operation *Operation) AddParameter(p *Parameter)

func (*Operation) AddResponse

func (operation *Operation) AddResponse(status int, response *Response)

func (*Operation) MarshalJSON

func (operation *Operation) MarshalJSON() ([]byte, error)

func (*Operation) UnmarshalJSON

func (operation *Operation) UnmarshalJSON(data []byte) error

func (*Operation) Validate

func (operation *Operation) Validate(c context.Context) error

type Parameter

type Parameter struct {
	ExtensionProps
	Name            string                 `json:"name,omitempty" yaml:"name,omitempty"`
	In              string                 `json:"in,omitempty" yaml:"in,omitempty"`
	Description     string                 `json:"description,omitempty" yaml:"description,omitempty"`
	Style           string                 `json:"style,omitempty" yaml:"style,omitempty"`
	Explode         *bool                  `json:"explode,omitempty" yaml:"explode,omitempty"`
	AllowEmptyValue bool                   `json:"allowEmptyValue,omitempty" yaml:"allowEmptyValue,omitempty"`
	AllowReserved   bool                   `json:"allowReserved,omitempty" yaml:"allowReserved,omitempty"`
	Deprecated      bool                   `json:"deprecated,omitempty" yaml:"deprecated,omitempty"`
	Required        bool                   `json:"required,omitempty" yaml:"required,omitempty"`
	Schema          *SchemaRef             `json:"schema,omitempty" yaml:"schema,omitempty"`
	Example         interface{}            `json:"example,omitempty" yaml:"example,omitempty"`
	Examples        map[string]*ExampleRef `json:"examples,omitempty" yaml:"examples,omitempty"`
	Content         Content                `json:"content,omitempty" yaml:"content,omitempty"`
}

Parameter is specified by OpenAPI/Swagger 3.0 standard.

func NewCookieParameter

func NewCookieParameter(name string) *Parameter

func NewHeaderParameter

func NewHeaderParameter(name string) *Parameter

func NewPathParameter

func NewPathParameter(name string) *Parameter

func NewQueryParameter

func NewQueryParameter(name string) *Parameter

func (*Parameter) MarshalJSON

func (parameter *Parameter) MarshalJSON() ([]byte, error)

func (*Parameter) SerializationMethod

func (parameter *Parameter) SerializationMethod() (*SerializationMethod, error)

SerializationMethod returns a parameter's serialization method. When a parameter's serialization method is not defined the method returns the default serialization method corresponding to a parameter's location.

func (*Parameter) UnmarshalJSON

func (parameter *Parameter) UnmarshalJSON(data []byte) error

func (*Parameter) Validate

func (parameter *Parameter) Validate(c context.Context) error

func (*Parameter) WithDescription

func (parameter *Parameter) WithDescription(value string) *Parameter

func (*Parameter) WithRequired

func (parameter *Parameter) WithRequired(value bool) *Parameter

func (*Parameter) WithSchema

func (parameter *Parameter) WithSchema(value *Schema) *Parameter

type ParameterRef

type ParameterRef struct {
	Ref   string
	Value *Parameter
}

func (*ParameterRef) MarshalJSON

func (value *ParameterRef) MarshalJSON() ([]byte, error)

func (*ParameterRef) UnmarshalJSON

func (value *ParameterRef) UnmarshalJSON(data []byte) error

func (*ParameterRef) Validate

func (value *ParameterRef) Validate(c context.Context) error

type Parameters

type Parameters []*ParameterRef

Parameters is specified by OpenAPI/Swagger 3.0 standard.

func NewParameters

func NewParameters() Parameters

func (Parameters) GetByInAndName

func (parameters Parameters) GetByInAndName(in string, name string) *Parameter

func (Parameters) Validate

func (parameters Parameters) Validate(c context.Context) error

type PathItem

type PathItem struct {
	ExtensionProps
	Ref         string     `json:"$ref,omitempty" yaml:"$ref,omitempty"`
	Summary     string     `json:"summary,omitempty" yaml:"summary,omitempty"`
	Description string     `json:"description,omitempty" yaml:"description,omitempty"`
	Connect     *Operation `json:"connect,omitempty" yaml:"connect,omitempty"`
	Delete      *Operation `json:"delete,omitempty" yaml:"delete,omitempty"`
	Get         *Operation `json:"get,omitempty" yaml:"get,omitempty"`
	Head        *Operation `json:"head,omitempty" yaml:"head,omitempty"`
	Options     *Operation `json:"options,omitempty" yaml:"options,omitempty"`
	Patch       *Operation `json:"patch,omitempty" yaml:"patch,omitempty"`
	Post        *Operation `json:"post,omitempty" yaml:"post,omitempty"`
	Put         *Operation `json:"put,omitempty" yaml:"put,omitempty"`
	Trace       *Operation `json:"trace,omitempty" yaml:"trace,omitempty"`
	Servers     Servers    `json:"servers,omitempty" yaml:"servers,omitempty"`
	Parameters  Parameters `json:"parameters,omitempty" yaml:"parameters,omitempty"`
}

func (*PathItem) GetOperation

func (pathItem *PathItem) GetOperation(method string) *Operation

func (*PathItem) MarshalJSON

func (pathItem *PathItem) MarshalJSON() ([]byte, error)

func (*PathItem) Operations

func (pathItem *PathItem) Operations() map[string]*Operation

func (*PathItem) SetOperation

func (pathItem *PathItem) SetOperation(method string, operation *Operation)

func (*PathItem) UnmarshalJSON

func (pathItem *PathItem) UnmarshalJSON(data []byte) error

func (*PathItem) Validate

func (pathItem *PathItem) Validate(c context.Context) error

type Paths

type Paths map[string]*PathItem

Paths is specified by OpenAPI/Swagger standard version 3.0.

func (Paths) Find

func (paths Paths) Find(key string) *PathItem

Find returns a path that matches the key.

The method ignores differences in template variable names (except possible "*" suffix).

For example:

paths := openapi3.Paths {
  "/person/{personName}": &openapi3.PathItem{},
}
pathItem := path.Find("/person/{name}")

would return the correct path item.

func (Paths) Validate

func (paths Paths) Validate(c context.Context) error

type RequestBody

type RequestBody struct {
	ExtensionProps
	Description string  `json:"description,omitempty" yaml:"description,omitempty"`
	Required    bool    `json:"required,omitempty" yaml:"required,omitempty"`
	Content     Content `json:"content,omitempty" yaml:"content,omitempty"`
}

RequestBody is specified by OpenAPI/Swagger 3.0 standard.

func NewRequestBody

func NewRequestBody() *RequestBody

func (*RequestBody) GetMediaType

func (requestBody *RequestBody) GetMediaType(mediaType string) *MediaType

func (*RequestBody) MarshalJSON

func (requestBody *RequestBody) MarshalJSON() ([]byte, error)

func (*RequestBody) UnmarshalJSON

func (requestBody *RequestBody) UnmarshalJSON(data []byte) error

func (*RequestBody) Validate

func (requestBody *RequestBody) Validate(c context.Context) error

func (*RequestBody) WithContent

func (requestBody *RequestBody) WithContent(content Content) *RequestBody

func (*RequestBody) WithDescription

func (requestBody *RequestBody) WithDescription(value string) *RequestBody

func (*RequestBody) WithFormDataSchema

func (requestBody *RequestBody) WithFormDataSchema(value *Schema) *RequestBody

func (*RequestBody) WithFormDataSchemaRef

func (requestBody *RequestBody) WithFormDataSchemaRef(value *SchemaRef) *RequestBody

func (*RequestBody) WithJSONSchema

func (requestBody *RequestBody) WithJSONSchema(value *Schema) *RequestBody

func (*RequestBody) WithJSONSchemaRef

func (requestBody *RequestBody) WithJSONSchemaRef(value *SchemaRef) *RequestBody

func (*RequestBody) WithRequired

func (requestBody *RequestBody) WithRequired(value bool) *RequestBody

func (*RequestBody) WithSchema

func (requestBody *RequestBody) WithSchema(value *Schema, consumes []string) *RequestBody

func (*RequestBody) WithSchemaRef

func (requestBody *RequestBody) WithSchemaRef(value *SchemaRef, consumes []string) *RequestBody

type RequestBodyRef

type RequestBodyRef struct {
	Ref   string
	Value *RequestBody
}

func (*RequestBodyRef) MarshalJSON

func (value *RequestBodyRef) MarshalJSON() ([]byte, error)

func (*RequestBodyRef) UnmarshalJSON

func (value *RequestBodyRef) UnmarshalJSON(data []byte) error

func (*RequestBodyRef) Validate

func (value *RequestBodyRef) Validate(c context.Context) error

type Response

type Response struct {
	ExtensionProps
	Description *string               `json:"description,omitempty" yaml:"description,omitempty"`
	Headers     map[string]*HeaderRef `json:"headers,omitempty" yaml:"headers,omitempty"`
	Content     Content               `json:"content,omitempty" yaml:"content,omitempty"`
	Links       map[string]*LinkRef   `json:"links,omitempty" yaml:"links,omitempty"`
}

Response is specified by OpenAPI/Swagger 3.0 standard.

func NewResponse

func NewResponse() *Response

func (*Response) MarshalJSON

func (response *Response) MarshalJSON() ([]byte, error)

func (*Response) UnmarshalJSON

func (response *Response) UnmarshalJSON(data []byte) error

func (*Response) Validate

func (response *Response) Validate(c context.Context) error

func (*Response) WithContent

func (response *Response) WithContent(content Content) *Response

func (*Response) WithDescription

func (response *Response) WithDescription(value string) *Response

func (*Response) WithJSONSchema

func (response *Response) WithJSONSchema(schema *Schema) *Response

func (*Response) WithJSONSchemaRef

func (response *Response) WithJSONSchemaRef(schema *SchemaRef) *Response

type ResponseRef

type ResponseRef struct {
	Ref   string
	Value *Response
}

func (*ResponseRef) MarshalJSON

func (value *ResponseRef) MarshalJSON() ([]byte, error)

func (*ResponseRef) UnmarshalJSON

func (value *ResponseRef) UnmarshalJSON(data []byte) error

func (*ResponseRef) Validate

func (value *ResponseRef) Validate(c context.Context) error

type Responses

type Responses map[string]*ResponseRef

Responses is specified by OpenAPI/Swagger 3.0 standard.

func NewResponses

func NewResponses() Responses

func (Responses) Default

func (responses Responses) Default() *ResponseRef

func (Responses) Get

func (responses Responses) Get(status int) *ResponseRef

func (Responses) Validate

func (responses Responses) Validate(c context.Context) error

type Schema

type Schema struct {
	ExtensionProps

	OneOf        []*SchemaRef  `json:"oneOf,omitempty" yaml:"oneOf,omitempty"`
	AnyOf        []*SchemaRef  `json:"anyOf,omitempty" yaml:"anyOf,omitempty"`
	AllOf        []*SchemaRef  `json:"allOf,omitempty" yaml:"allOf,omitempty"`
	Not          *SchemaRef    `json:"not,omitempty" yaml:"not,omitempty"`
	Type         string        `json:"type,omitempty" yaml:"type,omitempty"`
	Title        string        `json:"title,omitempty" yaml:"title,omitempty"`
	Format       string        `json:"format,omitempty" yaml:"format,omitempty"`
	Description  string        `json:"description,omitempty" yaml:"description,omitempty"`
	Enum         []interface{} `json:"enum,omitempty" yaml:"enum,omitempty"`
	Default      interface{}   `json:"default,omitempty" yaml:"default,omitempty"`
	Example      interface{}   `json:"example,omitempty" yaml:"example,omitempty"`
	ExternalDocs *ExternalDocs `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"`

	// Object-related, here for struct compactness
	AdditionalPropertiesAllowed *bool `json:"-" multijson:"additionalProperties,omitempty" yaml:"-"`
	// Array-related, here for struct compactness
	UniqueItems bool `json:"uniqueItems,omitempty" yaml:"uniqueItems,omitempty"`
	// Number-related, here for struct compactness
	ExclusiveMin bool `json:"exclusiveMinimum,omitempty" yaml:"exclusiveMinimum,omitempty"`
	ExclusiveMax bool `json:"exclusiveMaximum,omitempty" yaml:"exclusiveMaximum,omitempty"`
	// Properties
	Nullable        bool        `json:"nullable,omitempty" yaml:"nullable,omitempty"`
	ReadOnly        bool        `json:"readOnly,omitempty" yaml:"readOnly,omitempty"`
	WriteOnly       bool        `json:"writeOnly,omitempty" yaml:"writeOnly,omitempty"`
	AllowEmptyValue bool        `json:"allowEmptyValue,omitempty" yaml:"allowEmptyValue,omitempty"`
	XML             interface{} `json:"xml,omitempty" yaml:"xml,omitempty"`
	Deprecated      bool        `json:"deprecated,omitempty" yaml:"deprecated,omitempty"`

	// Number
	Min        *float64 `json:"minimum,omitempty" yaml:"minimum,omitempty"`
	Max        *float64 `json:"maximum,omitempty" yaml:"maximum,omitempty"`
	MultipleOf *float64 `json:"multipleOf,omitempty" yaml:"multipleOf,omitempty"`

	// String
	MinLength uint64  `json:"minLength,omitempty" yaml:"minLength,omitempty"`
	MaxLength *uint64 `json:"maxLength,omitempty" yaml:"maxLength,omitempty"`
	Pattern   string  `json:"pattern,omitempty" yaml:"pattern,omitempty"`

	// Array
	MinItems uint64     `json:"minItems,omitempty" yaml:"minItems,omitempty"`
	MaxItems *uint64    `json:"maxItems,omitempty" yaml:"maxItems,omitempty"`
	Items    *SchemaRef `json:"items,omitempty" yaml:"items,omitempty"`

	// Object
	Required             []string              `json:"required,omitempty" yaml:"required,omitempty"`
	Properties           map[string]*SchemaRef `json:"properties,omitempty" yaml:"properties,omitempty"`
	MinProps             uint64                `json:"minProperties,omitempty" yaml:"minProperties,omitempty"`
	MaxProps             *uint64               `json:"maxProperties,omitempty" yaml:"maxProperties,omitempty"`
	AdditionalProperties *SchemaRef            `json:"-" multijson:"additionalProperties,omitempty" yaml:"-"`
	Discriminator        *Discriminator        `json:"discriminator,omitempty" yaml:"discriminator,omitempty"`
	// contains filtered or unexported fields
}

Schema is specified by OpenAPI/Swagger 3.0 standard.

func NewAllOfSchema

func NewAllOfSchema(schemas ...*Schema) *Schema

func NewAnyOfSchema

func NewAnyOfSchema(schemas ...*Schema) *Schema

func NewArraySchema

func NewArraySchema() *Schema

func NewBoolSchema

func NewBoolSchema() *Schema

func NewBytesSchema

func NewBytesSchema() *Schema

func NewDateTimeSchema

func NewDateTimeSchema() *Schema

func NewFloat64Schema

func NewFloat64Schema() *Schema

func NewInt32Schema

func NewInt32Schema() *Schema

func NewInt64Schema

func NewInt64Schema() *Schema

func NewIntegerSchema

func NewIntegerSchema() *Schema

func NewObjectSchema

func NewObjectSchema() *Schema

func NewOneOfSchema

func NewOneOfSchema(schemas ...*Schema) *Schema

func NewSchema

func NewSchema() *Schema

func NewStringSchema

func NewStringSchema() *Schema

func NewUUIDSchema

func NewUUIDSchema() *Schema

func (*Schema) IsEmpty

func (schema *Schema) IsEmpty() bool

func (*Schema) IsMatching

func (schema *Schema) IsMatching(value interface{}) bool

func (*Schema) IsMatchingJSONArray

func (schema *Schema) IsMatchingJSONArray(value []interface{}) bool

func (*Schema) IsMatchingJSONBoolean

func (schema *Schema) IsMatchingJSONBoolean(value bool) bool

func (*Schema) IsMatchingJSONNumber

func (schema *Schema) IsMatchingJSONNumber(value float64) bool

func (*Schema) IsMatchingJSONObject

func (schema *Schema) IsMatchingJSONObject(value map[string]interface{}) bool

func (*Schema) IsMatchingJSONString

func (schema *Schema) IsMatchingJSONString(value string) bool

func (*Schema) MarshalJSON

func (schema *Schema) MarshalJSON() ([]byte, error)

func (*Schema) NewRef

func (schema *Schema) NewRef() *SchemaRef

func (*Schema) UnmarshalJSON

func (schema *Schema) UnmarshalJSON(data []byte) error

func (*Schema) Validate

func (schema *Schema) Validate(c context.Context) error

func (*Schema) VisitJSON

func (schema *Schema) VisitJSON(value interface{}, opts ...SchemaValidationOption) error

func (*Schema) VisitJSONArray

func (schema *Schema) VisitJSONArray(value []interface{}) error

func (*Schema) VisitJSONBoolean

func (schema *Schema) VisitJSONBoolean(value bool) error

func (*Schema) VisitJSONNumber

func (schema *Schema) VisitJSONNumber(value float64) error

func (*Schema) VisitJSONObject

func (schema *Schema) VisitJSONObject(value map[string]interface{}) error

func (*Schema) VisitJSONString

func (schema *Schema) VisitJSONString(value string) error

func (*Schema) WithAdditionalProperties

func (schema *Schema) WithAdditionalProperties(v *Schema) *Schema

func (*Schema) WithAnyAdditionalProperties

func (schema *Schema) WithAnyAdditionalProperties() *Schema

func (*Schema) WithDefault

func (schema *Schema) WithDefault(defaultValue interface{}) *Schema

func (*Schema) WithEnum

func (schema *Schema) WithEnum(values ...interface{}) *Schema

func (*Schema) WithExclusiveMax

func (schema *Schema) WithExclusiveMax(value bool) *Schema

func (*Schema) WithExclusiveMin

func (schema *Schema) WithExclusiveMin(value bool) *Schema

func (*Schema) WithFormat

func (schema *Schema) WithFormat(value string) *Schema

func (*Schema) WithItems

func (schema *Schema) WithItems(value *Schema) *Schema

func (*Schema) WithLength

func (schema *Schema) WithLength(i int64) *Schema

func (*Schema) WithLengthDecodedBase64

func (schema *Schema) WithLengthDecodedBase64(i int64) *Schema

func (*Schema) WithMax

func (schema *Schema) WithMax(value float64) *Schema

func (*Schema) WithMaxItems

func (schema *Schema) WithMaxItems(i int64) *Schema

func (*Schema) WithMaxLength

func (schema *Schema) WithMaxLength(i int64) *Schema

func (*Schema) WithMaxLengthDecodedBase64

func (schema *Schema) WithMaxLengthDecodedBase64(i int64) *Schema

func (*Schema) WithMaxProperties

func (schema *Schema) WithMaxProperties(i int64) *Schema

func (*Schema) WithMin

func (schema *Schema) WithMin(value float64) *Schema

func (*Schema) WithMinItems

func (schema *Schema) WithMinItems(i int64) *Schema

func (*Schema) WithMinLength

func (schema *Schema) WithMinLength(i int64) *Schema

func (*Schema) WithMinLengthDecodedBase64

func (schema *Schema) WithMinLengthDecodedBase64(i int64) *Schema

func (*Schema) WithMinProperties

func (schema *Schema) WithMinProperties(i int64) *Schema

func (*Schema) WithNullable

func (schema *Schema) WithNullable() *Schema

func (*Schema) WithPattern

func (schema *Schema) WithPattern(pattern string) *Schema

func (*Schema) WithProperties

func (schema *Schema) WithProperties(properties map[string]*Schema) *Schema

func (*Schema) WithProperty

func (schema *Schema) WithProperty(name string, propertySchema *Schema) *Schema

func (*Schema) WithPropertyRef

func (schema *Schema) WithPropertyRef(name string, ref *SchemaRef) *Schema

func (*Schema) WithUniqueItems

func (schema *Schema) WithUniqueItems(unique bool) *Schema

type SchemaError

type SchemaError struct {
	Value interface{}

	Schema      *Schema
	SchemaField string
	Reason      string
	Origin      error
	// contains filtered or unexported fields
}

func (*SchemaError) Error

func (err *SchemaError) Error() string

func (*SchemaError) JSONPointer

func (err *SchemaError) JSONPointer() []string

type SchemaRef

type SchemaRef struct {
	Ref   string
	Value *Schema
}

func NewSchemaRef

func NewSchemaRef(ref string, value *Schema) *SchemaRef

func (*SchemaRef) MarshalJSON

func (value *SchemaRef) MarshalJSON() ([]byte, error)

func (*SchemaRef) UnmarshalJSON

func (value *SchemaRef) UnmarshalJSON(data []byte) error

func (*SchemaRef) Validate

func (value *SchemaRef) Validate(c context.Context) error

type SchemaValidationOption

type SchemaValidationOption func(*schemaValidationSettings)

SchemaValidationOption describes options a user has when validating request / response bodies.

func FailFast

func FailFast() SchemaValidationOption

FailFast returns schema validation errors quicker.

func MultiErrors

func MultiErrors() SchemaValidationOption

func VisitAsRequest

func VisitAsRequest() SchemaValidationOption

func VisitAsResponse

func VisitAsResponse() SchemaValidationOption

type SecurityRequirement

type SecurityRequirement map[string][]string

func NewSecurityRequirement

func NewSecurityRequirement() SecurityRequirement

func (SecurityRequirement) Authenticate

func (security SecurityRequirement) Authenticate(provider string, scopes ...string) SecurityRequirement

func (SecurityRequirement) Validate

func (security SecurityRequirement) Validate(c context.Context) error

type SecurityRequirements

type SecurityRequirements []SecurityRequirement

func NewSecurityRequirements

func NewSecurityRequirements() *SecurityRequirements

func (SecurityRequirements) Validate

func (srs SecurityRequirements) Validate(c context.Context) error

func (*SecurityRequirements) With

func (srs *SecurityRequirements) With(securityRequirement SecurityRequirement) *SecurityRequirements

type SecurityScheme

type SecurityScheme struct {
	ExtensionProps

	Type         string      `json:"type,omitempty" yaml:"type,omitempty"`
	Description  string      `json:"description,omitempty" yaml:"description,omitempty"`
	Name         string      `json:"name,omitempty" yaml:"name,omitempty"`
	In           string      `json:"in,omitempty" yaml:"in,omitempty"`
	Scheme       string      `json:"scheme,omitempty" yaml:"scheme,omitempty"`
	BearerFormat string      `json:"bearerFormat,omitempty" yaml:"bearerFormat,omitempty"`
	Flows        *OAuthFlows `json:"flows,omitempty" yaml:"flows,omitempty"`
}

func NewCSRFSecurityScheme

func NewCSRFSecurityScheme() *SecurityScheme

func NewJWTSecurityScheme

func NewJWTSecurityScheme() *SecurityScheme

func NewSecurityScheme

func NewSecurityScheme() *SecurityScheme

func (*SecurityScheme) MarshalJSON

func (ss *SecurityScheme) MarshalJSON() ([]byte, error)

func (*SecurityScheme) UnmarshalJSON

func (ss *SecurityScheme) UnmarshalJSON(data []byte) error

func (*SecurityScheme) Validate

func (ss *SecurityScheme) Validate(c context.Context) error

func (*SecurityScheme) WithBearerFormat

func (ss *SecurityScheme) WithBearerFormat(value string) *SecurityScheme

func (*SecurityScheme) WithDescription

func (ss *SecurityScheme) WithDescription(value string) *SecurityScheme

func (*SecurityScheme) WithIn

func (ss *SecurityScheme) WithIn(value string) *SecurityScheme

func (*SecurityScheme) WithName

func (ss *SecurityScheme) WithName(value string) *SecurityScheme

func (*SecurityScheme) WithScheme

func (ss *SecurityScheme) WithScheme(value string) *SecurityScheme

func (*SecurityScheme) WithType

func (ss *SecurityScheme) WithType(value string) *SecurityScheme

type SecuritySchemeRef

type SecuritySchemeRef struct {
	Ref   string
	Value *SecurityScheme
}

func (*SecuritySchemeRef) MarshalJSON

func (value *SecuritySchemeRef) MarshalJSON() ([]byte, error)

func (*SecuritySchemeRef) UnmarshalJSON

func (value *SecuritySchemeRef) UnmarshalJSON(data []byte) error

func (*SecuritySchemeRef) Validate

func (value *SecuritySchemeRef) Validate(c context.Context) error

type SerializationMethod

type SerializationMethod struct {
	Style   string
	Explode bool
}

SerializationMethod describes a serialization method of HTTP request's parameters and body.

type Server

type Server struct {
	URL         string                     `json:"url" yaml:"url"`
	Description string                     `json:"description,omitempty" yaml:"description,omitempty"`
	Variables   map[string]*ServerVariable `json:"variables,omitempty" yaml:"variables,omitempty"`
}

Server is specified by OpenAPI/Swagger standard version 3.0.

func (Server) MatchRawURL

func (server Server) MatchRawURL(input string) ([]string, string, bool)

func (Server) ParameterNames

func (server Server) ParameterNames() ([]string, error)

func (*Server) Validate

func (server *Server) Validate(c context.Context) (err error)

type ServerVariable

type ServerVariable struct {
	Enum        []interface{} `json:"enum,omitempty" yaml:"enum,omitempty"`
	Default     interface{}   `json:"default,omitempty" yaml:"default,omitempty"`
	Description string        `json:"description,omitempty" yaml:"description,omitempty"`
}

ServerVariable is specified by OpenAPI/Swagger standard version 3.0.

func (*ServerVariable) Validate

func (serverVariable *ServerVariable) Validate(c context.Context) error

type Servers

type Servers []*Server

Servers is specified by OpenAPI/Swagger standard version 3.0.

func (Servers) MatchURL

func (servers Servers) MatchURL(parsedURL *url.URL) (*Server, []string, string)

func (Servers) Validate

func (servers Servers) Validate(c context.Context) error

Validate ensures servers are per the OpenAPIv3 specification.

type SliceUniqueItemsChecker

type SliceUniqueItemsChecker func(items []interface{}) bool

SliceUniqueItemsChecker is an function used to check if an given slice have unique items.

type Swagger

type Swagger struct {
	ExtensionProps
	OpenAPI      string               `json:"openapi" yaml:"openapi"` // Required
	Components   Components           `json:"components,omitempty" yaml:"components,omitempty"`
	Info         *Info                `json:"info" yaml:"info"`   // Required
	Paths        Paths                `json:"paths" yaml:"paths"` // Required
	Security     SecurityRequirements `json:"security,omitempty" yaml:"security,omitempty"`
	Servers      Servers              `json:"servers,omitempty" yaml:"servers,omitempty"`
	Tags         Tags                 `json:"tags,omitempty" yaml:"tags,omitempty"`
	ExternalDocs *ExternalDocs        `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"`
}

func (*Swagger) AddOperation

func (swagger *Swagger) AddOperation(path string, method string, operation *Operation)

func (*Swagger) AddServer

func (swagger *Swagger) AddServer(server *Server)

func (*Swagger) MarshalJSON

func (swagger *Swagger) MarshalJSON() ([]byte, error)

func (*Swagger) UnmarshalJSON

func (swagger *Swagger) UnmarshalJSON(data []byte) error

func (*Swagger) Validate

func (swagger *Swagger) Validate(c context.Context) error

type SwaggerLoader

type SwaggerLoader struct {
	IsExternalRefsAllowed  bool
	Context                context.Context
	LoadSwaggerFromURIFunc func(loader *SwaggerLoader, url *url.URL) (*Swagger, error)
	// contains filtered or unexported fields
}
Example

Code:

source := `{"info":{"description":"An API"}}`
swagger, err := NewSwaggerLoader().LoadSwaggerFromData([]byte(source))
if err != nil {
	panic(err)
}
fmt.Print(swagger.Info.Description)
An API

func NewSwaggerLoader

func NewSwaggerLoader() *SwaggerLoader

func (*SwaggerLoader) LoadSwaggerFromData

func (swaggerLoader *SwaggerLoader) LoadSwaggerFromData(data []byte) (*Swagger, error)

func (*SwaggerLoader) LoadSwaggerFromDataWithPath

func (swaggerLoader *SwaggerLoader) LoadSwaggerFromDataWithPath(data []byte, path *url.URL) (*Swagger, error)

LoadSwaggerFromDataWithPath takes the OpenApi spec data in bytes and a path where the resolver can find referred elements and returns a *Swagger with all resolved data or an error if unable to load data or resolve refs.

func (*SwaggerLoader) LoadSwaggerFromFile

func (swaggerLoader *SwaggerLoader) LoadSwaggerFromFile(path string) (*Swagger, error)

func (*SwaggerLoader) LoadSwaggerFromURI

func (swaggerLoader *SwaggerLoader) LoadSwaggerFromURI(location *url.URL) (*Swagger, error)

func (*SwaggerLoader) ResolveRefsIn

func (swaggerLoader *SwaggerLoader) ResolveRefsIn(swagger *Swagger, path *url.URL) (err error)

type Tag

type Tag struct {
	Name         string        `json:"name,omitempty" yaml:"name,omitempty"`
	Description  string        `json:"description,omitempty" yaml:"description,omitempty"`
	ExternalDocs *ExternalDocs `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"`
}

Tag is specified by OpenAPI/Swagger 3.0 standard.

type Tags

type Tags []*Tag

Tags is specified by OpenAPI/Swagger 3.0 standard.

func (Tags) Get

func (tags Tags) Get(name string) *Tag