Documentation ¶
Index ¶
- Variables
- func CastFunc(t string) string
- func ElementType(t string) string
- func IsBuiltin(field astutils.FieldMeta) bool
- func IsEnum(field astutils.FieldMeta) bool
- func IsEnumType(methods []astutils.MethodMeta) bool
- func IsOptional(t string) bool
- func IsSlice(t string) bool
- func IsStruct(field astutils.FieldMeta) bool
- func IsSupport(t string) bool
- func IsVarargs(t string) bool
- func RefAddDoc(schema *Schema, doc string)
- func ToOptional(t string) string
- func ToSlice(t string) string
- type API
- type Callback
- type Components
- type Contact
- type Content
- type Discriminator
- type Encoding
- type Example
- type ExampleType
- type ExternalDocs
- type FileModel
- type Format
- type Header
- type IEnum
- 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, } Decimal = &Schema{ Type: StringT, Format: DecimalF, } )
var Enums = make(map[string]astutils.EnumMeta)
var IEnumMethods = []string{
"func StringSetter(value string)",
"func StringGetter() string",
"func UnmarshalJSON(bytes []byte) error",
"func MarshalJSON() ([]byte, error)",
}
var SchemaNames []string
SchemaNames schema names from components of OpenAPI3.0 json document also struct names from vo package
var Schemas = make(map[string]Schema)
Schemas from components of OpenAPI3.0 json document
Functions ¶
func IsBuiltin ¶
IsBuiltin check whether field is built-in type https://pkg.go.dev/builtin or not
func IsEnumType ¶
func IsEnumType(methods []astutils.MethodMeta) bool
func IsOptional ¶
func ToOptional ¶
Types ¶
type API ¶
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 ExampleType ¶
type ExampleType int
const ( UNKNOWN_EXAMPLE ExampleType = iota JSON_EXAMPLE TEXT_EXAMPLE )
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 FileModel ¶
type FileModel struct { Filename string Reader io.ReadCloser }
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"` 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"` XMapType string `json:"x-map-type,omitempty"` }
Schema https://spec.openapis.org/oas/v3.0.3#schema-object
func CopySchema ¶
CopySchema as SchemaOf returns pointer, so deepcopy the schema the pointer points
func NewSchema ¶
func NewSchema(structmeta astutils.StructMeta) Schema
NewSchema new schema from astutils.StructMeta
func SchemaOf ¶
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"` }