Documentation ¶
Index ¶
- Variables
- func IsBuiltin(field astutils.FieldMeta) bool
- type API
- type Callback
- type Components
- type Contact
- type Content
- type Discriminator
- type Encoding
- type Example
- type ExternalDocs
- type Format
- type Header
- type In
- type Info
- type License
- type Link
- type MediaType
- type Operation
- type Parameter
- type Path
- type RequestBody
- type Response
- type Responses
- type Schema
- type Security
- type SecurityScheme
- type Server
- type Tag
- type Type
Constants ¶
This section is empty.
Variables ¶
var ( // Any constant schema for object Any = &Schema{ Type: ObjectT, } // Int constant schema for int Int = &Schema{ Type: IntegerT, Format: Int32F, } // Int64 constant schema for int64 Int64 = &Schema{ Type: IntegerT, Format: Int64F, } // String constant schema for string String = &Schema{ Type: StringT, } // Time constant schema for time Time = &Schema{ Type: StringT, Format: DateTimeF, } // Bool constant schema for bool Bool = &Schema{ Type: BooleanT, } // Float32 constant schema for float32 Float32 = &Schema{ Type: NumberT, Format: FloatF, } // Float64 constant schema for float64 Float64 = &Schema{ Type: NumberT, Format: DoubleF, } // File constant schema for file File = &Schema{ Type: StringT, Format: BinaryF, } // FileArray constant schema for file slice FileArray = &Schema{ Type: ArrayT, Items: File, } )
var SchemaNames []string
SchemaNames schema names from components of OpenAPI3.0 json document
var Schemas map[string]Schema
Schemas from components of OpenAPI3.0 json document
Functions ¶
Types ¶
type API ¶ added in v0.7.0
type API struct { Openapi string `json:"openapi,omitempty"` Info *Info `json:"info,omitempty"` Servers []Server `json:"servers,omitempty"` Tags []Tag `json:"tags,omitempty"` Paths map[string]Path `json:"paths,omitempty"` Components *Components `json:"components,omitempty"` ExternalDocs *ExternalDocs `json:"externalDocs,omitempty"` }
type Callback ¶
type Callback struct { }
Callback https://spec.openapis.org/oas/v3.0.3#callback-object
type Components ¶
type Components struct { Schemas map[string]Schema `json:"schemas,omitempty"` RequestBodies map[string]RequestBody `json:"requestBodies,omitempty"` Responses map[string]Response `json:"responses,omitempty"` // TODO Parameters map[string]Parameter `json:"parameters,omitempty"` // TODO Examples map[string]Example `json:"examples,omitempty"` // TODO Headers map[string]Header `json:"headers,omitempty"` // TODO SecuritySchemes map[string]SecurityScheme `json:"securitySchemes,omitempty"` // TODO Links map[string]Link `json:"links,omitempty"` // TODO Callbacks map[string]Callback `json:"callbacks,omitempty"` }
Components https://spec.openapis.org/oas/v3.0.3#components-object
type Content ¶
type Content struct { TextPlain *MediaType `json:"text/plain,omitempty"` JSON *MediaType `json:"application/json,omitempty"` FormURL *MediaType `json:"application/x-www-form-urlencoded,omitempty"` Stream *MediaType `json:"application/octet-stream,omitempty"` FormData *MediaType `json:"multipart/form-data,omitempty"` Default *MediaType `json:"*/*,omitempty"` }
Content REQUIRED. The content of the request body. The key is a media type or [media type range]appendix-D) and the value describes it. For requests that match multiple keys, only the most specific key is applicable. e.g. text/plain overrides text/*
type Discriminator ¶
type Discriminator struct { PropertyName string `json:"propertyName,omitempty"` Mapping map[string]string `json:"mapping,omitempty"` }
Discriminator https://spec.openapis.org/oas/v3.0.3#discriminator-object
type Encoding ¶
type Encoding struct { }
Encoding https://spec.openapis.org/oas/v3.0.3#encoding-object
type ExternalDocs ¶
type ExternalDocs struct { Description string `json:"description,omitempty"` URL string `json:"url,omitempty"` }
ExternalDocs https://spec.openapis.org/oas/v3.0.3#external-documentation-object
type Header ¶
type Info ¶
type MediaType ¶
type MediaType struct { Schema *Schema `json:"schema,omitempty"` Example interface{} `json:"example,omitempty"` Examples map[string]Example `json:"examples,omitempty"` Encoding map[string]Encoding `json:"encoding,omitempty"` }
MediaType https://spec.openapis.org/oas/v3.0.3#media-type-object
type Operation ¶
type Operation struct { Tags []string `json:"tags,omitempty"` Summary string `json:"summary,omitempty"` Description string `json:"description,omitempty"` OperationID string `json:"operationId,omitempty"` Parameters []Parameter `json:"parameters,omitempty"` RequestBody *RequestBody `json:"requestBody,omitempty"` Responses *Responses `json:"responses,omitempty"` Deprecated bool `json:"deprecated,omitempty"` ExternalDocs *ExternalDocs `json:"externalDocs,omitempty"` Callbacks map[string]Callback `json:"callbacks,omitempty"` Security []Security `json:"security,omitempty"` Servers []Server `json:"servers,omitempty"` }
Operation https://spec.openapis.org/oas/v3.0.3#operation-object
type Parameter ¶
type Parameter struct { Name string `json:"name,omitempty"` In In `json:"in,omitempty"` Description string `json:"description,omitempty"` Required bool `json:"required,omitempty"` Deprecated bool `json:"deprecated,omitempty"` Example interface{} `json:"example,omitempty"` Schema *Schema `json:"schema,omitempty"` Style string `json:"style,omitempty"` Explode bool `json:"explode,omitempty"` AllowReserved bool `json:"allowReserved,omitempty"` Content *Content `json:"content,omitempty"` AllowEmptyValue bool `json:"allowEmptyValue,omitempty"` }
Parameter https://spec.openapis.org/oas/v3.0.3#parameter-object
type Path ¶
type RequestBody ¶
type RequestBody struct { Description string `json:"description,omitempty"` Content *Content `json:"content,omitempty"` Required bool `json:"required,omitempty"` Ref string `json:"$ref,omitempty"` }
RequestBody https://spec.openapis.org/oas/v3.0.3#request-body-object
type Response ¶
type Response struct { Description string `json:"description,omitempty"` Content *Content `json:"content,omitempty"` // TODO Headers map[string]Header `json:"headers,omitempty"` Links map[string]Link `json:"links,omitempty"` Ref string `json:"$ref,omitempty"` }
Response https://spec.openapis.org/oas/v3.0.3#response-object
type Responses ¶
type Responses struct { Resp200 *Response `json:"200,omitempty"` Resp400 *Response `json:"400,omitempty"` Resp401 *Response `json:"401,omitempty"` Resp403 *Response `json:"403,omitempty"` Resp404 *Response `json:"404,omitempty"` Resp405 *Response `json:"405,omitempty"` Default *Response `json:"default,omitempty"` }
Responses https://spec.openapis.org/oas/v3.0.3#responses-object
type Schema ¶
type Schema struct { Ref string `json:"$ref,omitempty"` Title string `json:"title,omitempty"` Type Type `json:"type,omitempty"` Properties map[string]*Schema `json:"properties,omitempty"` Format Format `json:"format,omitempty"` Items *Schema `json:"items,omitempty"` Description string `json:"description,omitempty"` Default interface{} `json:"default,omitempty"` Example interface{} `json:"example,omitempty"` Deprecated bool `json:"deprecated,omitempty"` Discriminator *Discriminator `json:"discriminator,omitempty"` Nullable bool `json:"nullable,omitempty"` Maximum interface{} `json:"maximum,omitempty"` Minimum interface{} `json:"minimum,omitempty"` ExclusiveMaximum interface{} `json:"exclusiveMaximum,omitempty"` ExclusiveMinimum interface{} `json:"exclusiveMinimum,omitempty"` MaxLength int `json:"maxLength,omitempty"` MinLength int `json:"minLength,omitempty"` Required []string `json:"required,omitempty"` Enum []interface{} `json:"enum,omitempty"` AllOf []*Schema `json:"allOf,omitempty"` OneOf []*Schema `json:"oneOf,omitempty"` AnyOf []*Schema `json:"anyOf,omitempty"` Not []*Schema `json:"not,omitempty"` // AdditionalProperties *Schema or bool AdditionalProperties interface{} `json:"additionalProperties,omitempty"` Pattern interface{} `json:"pattern,omitempty"` }
Schema https://spec.openapis.org/oas/v3.0.3#schema-object
func CopySchema ¶ added in v0.3.9
CopySchema as SchemaOf returns pointer, so deepcopy the schema the pointer points
func NewSchema ¶ added in v0.3.9
func NewSchema(structmeta astutils.StructMeta) Schema
NewSchema new schema from astutils.StructMeta
func SchemaOf ¶ added in v0.3.9
SchemaOf reference https://golang.org/pkg/builtin/ type bool type byte type complex128 type complex64 type error type float32 type float64 type int type int16 type int32 type int64 type int8 type rune type string type uint type uint16 type uint32 type uint64 type uint8 type uintptr
type SecurityScheme ¶
type SecurityScheme struct { }
SecurityScheme https://spec.openapis.org/oas/v3.0.3#security-scheme-object
type Tag ¶
type Tag struct { Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` ExternalDocs *ExternalDocs `json:"externalDocs,omitempty"` }