v3

package
v0.6.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2021 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Any = &Schema{
		Type: ObjectT,
	}
	Int = &Schema{
		Type:   IntegerT,
		Format: Int32F,
	}
	Int64 = &Schema{
		Type:   IntegerT,
		Format: Int64F,
	}
	String = &Schema{
		Type: StringT,
	}
	Time = &Schema{
		Type:   StringT,
		Format: DateTimeF,
	}
	Bool = &Schema{
		Type: BooleanT,
	}
	Float32 = &Schema{
		Type:   NumberT,
		Format: FloatF,
	}
	Float64 = &Schema{
		Type:   NumberT,
		Format: DoubleF,
	}
	File = &Schema{
		Type:   StringT,
		Format: BinaryF,
	}
	FileArray = &Schema{
		Type:  ArrayT,
		Items: File,
	}
)
View Source
var SchemaNames []string
View Source
var Schemas map[string]Schema

Functions

func IsBuiltin added in v0.3.9

func IsBuiltin(field astutils.FieldMeta) bool

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 {
}

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"`
}

type Contact

type Contact struct {
	Email string `json:"email,omitempty"`
}

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"`
}

type Discriminator

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

type Encoding

type Encoding struct {
}

type Example

type Example struct {
}

type ExternalDocs

type ExternalDocs struct {
	Description string `json:"description,omitempty"`
	Url         string `json:"url,omitempty"`
}

type Format

type Format string
const (
	Int32F    Format = "int32"
	Int64F    Format = "int64"
	FloatF    Format = "float"
	DoubleF   Format = "double"
	DateTimeF Format = "date-time"
	BinaryF   Format = "binary"
)
type Header struct {
	Ref         string      `json:"$ref,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"`
}

type In

type In string
const (
	InQuery In = "query"
	// TODO
	InPath In = "path"
	// TODO
	InHeader In = "header"
	// TODO
	InCookie In = "cookie"
)

type Info

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

type License

type License struct {
	Name string `json:"name,omitempty"`
	Url  string `json:"url,omitempty"`
}
type Link struct {
}

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"`
}

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"`
}

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"`
}

type Path

type Path struct {
	Get    *Operation `json:"get,omitempty"`
	Post   *Operation `json:"post,omitempty"`
	Put    *Operation `json:"put,omitempty"`
	Delete *Operation `json:"delete,omitempty"`
	// TODO
	Parameters []Parameter `json:"parameters,omitempty"`
}

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"`
}

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"`
}

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"`
}

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"`
}

func CopySchema added in v0.3.9

func CopySchema(field astutils.FieldMeta) Schema

func NewSchema added in v0.3.9

func NewSchema(structmeta astutils.StructMeta) Schema

func SchemaOf added in v0.3.9

func SchemaOf(field astutils.FieldMeta) *Schema

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 Security

type Security struct {
}

type SecurityScheme

type SecurityScheme struct {
}

type Server

type Server struct {
	Url string `json:"url,omitempty"`
}

type Tag

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

type Type

type Type string
const (
	IntegerT Type = "integer"
	StringT  Type = "string"
	BooleanT Type = "boolean"
	NumberT  Type = "number"
	ObjectT  Type = "object"
	ArrayT   Type = "array"
)

Directories

Path Synopsis
codegen

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL