reflectopenapi

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2020 License: Apache-2.0 Imports: 6 Imported by: 16

README

reflect-openapi

Define openapi.json with reflect package.

examples

Some examples are here. ./_examples

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewDoc

func NewDoc() (*openapi3.Swagger, error)

func NewDocFromSkeleton

func NewDocFromSkeleton(skeleton []byte) (*openapi3.Swagger, error)

TODO: add api function

Types

type Binder

type Binder interface {
	Bind(doc *openapi3.Swagger)
}

type NoRefResolver

type NoRefResolver struct{}

func (*NoRefResolver) Bind

func (r *NoRefResolver) Bind(doc *openapi3.Swagger)

func (*NoRefResolver) ResolveParameter

func (r *NoRefResolver) ResolveParameter(v *openapi3.Parameter, s shape.Shape) *openapi3.ParameterRef

func (*NoRefResolver) ResolveRequestBody

func (r *NoRefResolver) ResolveRequestBody(v *openapi3.RequestBody, s shape.Shape) *openapi3.RequestBodyRef

func (*NoRefResolver) ResolveResponse

func (r *NoRefResolver) ResolveResponse(v *openapi3.Response, s shape.Shape) *openapi3.ResponseRef

func (*NoRefResolver) ResolveSchema

func (r *NoRefResolver) ResolveSchema(v *openapi3.Schema, s shape.Shape) *openapi3.SchemaRef

type Resolver

type Resolver interface {
	ResolveSchema(v *openapi3.Schema, s shape.Shape) *openapi3.SchemaRef
	ResolveParameter(v *openapi3.Parameter, s shape.Shape) *openapi3.ParameterRef
	ResolveRequestBody(v *openapi3.RequestBody, s shape.Shape) *openapi3.RequestBodyRef
	ResolveResponse(v *openapi3.Response, s shape.Shape) *openapi3.ResponseRef
}

type Transformer

type Transformer struct {
	CacheHit int

	Resolver
	// contains filtered or unexported fields
}

func (*Transformer) Builtin

func (t *Transformer) Builtin() *Transformer

func (*Transformer) Transform

func (t *Transformer) Transform(s shape.Shape) interface{}

type UseRefResolver

type UseRefResolver struct {
	Schemas []*openapi3.SchemaRef
}

func (*UseRefResolver) Bind

func (r *UseRefResolver) Bind(doc *openapi3.Swagger)

func (*UseRefResolver) ResolveParameter

func (r *UseRefResolver) ResolveParameter(v *openapi3.Parameter, s shape.Shape) *openapi3.ParameterRef

func (*UseRefResolver) ResolveRequestBody

func (r *UseRefResolver) ResolveRequestBody(v *openapi3.RequestBody, s shape.Shape) *openapi3.RequestBodyRef

func (*UseRefResolver) ResolveResponse

func (r *UseRefResolver) ResolveResponse(v *openapi3.Response, s shape.Shape) *openapi3.ResponseRef

func (*UseRefResolver) ResolveSchema

func (r *UseRefResolver) ResolveSchema(v *openapi3.Schema, s shape.Shape) *openapi3.SchemaRef

type Visitor

type Visitor struct {
	*Transformer
	Doc        *openapi3.Swagger
	Schemas    map[reflect.Type]*openapi3.Schema
	Operations map[reflect.Type]*openapi3.Operation
}

not visitor pattern

func NewVisitor

func NewVisitor(resolver Resolver) *Visitor

func (*Visitor) VisitFunc

func (v *Visitor) VisitFunc(ob interface{}, modifiers ...func(*openapi3.Operation)) *openapi3.Operation

func (*Visitor) VisitType

func (v *Visitor) VisitType(ob interface{}, modifiers ...func(*openapi3.Schema)) *openapi3.SchemaRef

Directories

Path Synopsis
_examples module
pkg

Jump to

Keyboard shortcuts

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