Documentation ¶
Index ¶
- Constants
- func AddNewDefinition(objName string, s interface{}, sw *Doc)
- func Fill(url, name string) func(c *Config)
- func ParseKind(kind interface{}) (typeName, format string)
- func ParseRootType(obj Schemater, sw Doc)
- func ReadDoc(name string) (string, error)
- func Register(name string, swagger Swagger)
- func URL(url string) func(c *Config)
- type AdderInParameter
- type AdditionalProperties
- type ArrayParameters
- type BaseAPI
- type BaseObject
- type BasePather
- type Config
- type Consumer
- type Contact
- type Definition
- type Doc
- type EmptyWriter
- type IContact
- type IInfo
- type ILicense
- type IMethod
- type ISwaggerAPI
- type InType
- type Info
- type Informer
- type License
- type MapProperty
- type MapResponse
- type MapResponseCode
- type Method
- func (m *Method) AddFileResponse(responseCode int, description string) Responser
- func (m *Method) AddInBodyParameter(name, description string, t interface{}, required bool) AdderInParameter
- func (m *Method) AddInCookieParameter(name, description string, t reflect.Kind, required bool) AdderInParameter
- func (m *Method) AddInFileParameter(name, description string) AdderInParameter
- func (m *Method) AddInHeaderParameter(name, description string, t reflect.Kind, required bool) AdderInParameter
- func (m *Method) AddInPathParameter(name, description string, t reflect.Kind) AdderInParameter
- func (m *Method) AddInQueryParameter(name, description string, t reflect.Kind, required bool) AdderInParameter
- func (m *Method) AddResponse(responseCode int, description string, schema interface{}) Responser
- func (m *Method) Parse(path, methodName string, sw Doc)
- func (m *Method) SetConsumes(c ...string) Producer
- func (m *Method) SetDescription(d string) Summarer
- func (m *Method) SetProduces(p ...string) Consumer
- func (m *Method) SetSummary(s string) ParameterAndResponser
- type Methods
- type Parameter
- type ParameterAndResponser
- type Producer
- type Property
- type Response
- type Responser
- type Schema
- type Schemater
- type Summarer
- type Swagger
- type TypeDictElement
Constants ¶
const IndexTempl = `` /* 3501-byte string literal not displayed */
Variables ¶
This section is empty.
Functions ¶
func AddNewDefinition ¶
AddNewDefinition is a helper for add new definition in map
func ParseKind ¶
func ParseKind(kind interface{}) (typeName, format string)
ParseKind parse simple types and return it TypeName and Format
func ParseRootType ¶
ParseRootType is a method for analyzing Types and Schemas of Parameters and Response
Types ¶
type AdderInParameter ¶
type AdderInParameter interface { // AddInBodyParameter - adds a request in body parameter AddInPathParameter(name, description string, t reflect.Kind) AdderInParameter // AddInQueryParameter - adds a request in query parameter AddInQueryParameter(name, description string, t reflect.Kind, required bool) AdderInParameter // AddInHeaderParameter - adds a request in header parameter AddInHeaderParameter(name, description string, t reflect.Kind, required bool) AdderInParameter // AddInCookieParameter - adds a request in cookie parameter AddInCookieParameter(name, description string, t reflect.Kind, required bool) AdderInParameter // AddInFileParameter - adds a request in file parameter AddInFileParameter(name, description string) AdderInParameter Responser }
type AdditionalProperties ¶
type ArrayParameters ¶
type ArrayParameters []*Parameter
type BaseAPI ¶
type BaseAPI struct { Version string `json:"swagger,omitempty"` Info IInfo `json:"info,omitempty"` // Base path to API, it consist the prefix of endpoint path BasePath string `json:"basePath,omitempty"` }
Base object for describing the builded API
func (*BaseAPI) NewSwagger ¶
func (s *BaseAPI) NewSwagger() BasePather
func (*BaseAPI) SetBasePath ¶
func (*BaseAPI) SetInfo ¶
func (s *BaseAPI) SetInfo(i IInfo) ISwaggerAPI
type BaseObject ¶
type BaseObject struct { // Type name TypeName string `json:"type,omitempty"` // List of enumeration values Enum []interface{} `json:"enum,omitempty"` // Default value Default interface{} `json:"default,omitempty"` // Example of value Example interface{} `json:"example,omitempty"` // Could it be null? Nullable string `json:"nullable,omitempty"` // Detailed object description Description string `json:"description,omitempty"` // Name of object Name string `json:"name,omitempty"` // Object format, for example: int64 is integer with format int64 Format string `json:"format,omitempty"` // Reference to a schema definition Ref string `json:"$ref,omitempty"` // The object schema Schema *Schema `json:"schema,omitempty"` // Kind of object Type reflect.Kind `json:"-"` // AdditionalProperties *AdditionalProperties `json:"additionalProperties,omitempty"` }
Base object include all common fields of responses and parameters
func NewBaseObject ¶
func NewBaseObject(name, description string, t interface{}) *BaseObject
type BasePather ¶
func NewSwagger ¶
func NewSwagger() BasePather
type Config ¶
type Config struct { // The url pointing to API definition (normally swagger.json or swagger.yaml). Default is `doc.json`. URL string // Name of swagger object Name string }
Config stores httpSwagger configuration variables.
type Contact ¶
type Definition ¶
type Definition struct { // Type name TypeName string `json:"type,omitempty"` // List of properties of definition object Properties map[string]*Property `json:"properties,omitempty"` }
func (*Definition) Parse ¶
func (d *Definition) Parse(s interface{}, sw *Doc)
Parse definition of object
type Doc ¶
type Doc struct { BaseAPI // List of paths to endpoints Paths map[string]Methods `json:"paths,omitempty"` // List of definitions Definitions map[string]*Definition `json:"definitions,omitempty"` }
High level object for describing the builded API
type EmptyWriter ¶
type EmptyWriter struct{}
func (*EmptyWriter) Header ¶
func (e *EmptyWriter) Header() http.Header
func (*EmptyWriter) WriteHeader ¶
func (e *EmptyWriter) WriteHeader(statusCode int)
type IContact ¶
type IContact interface { SetEmail(e string) IContact SetName(n string) IContact SetURL(url string) IContact }
func NewContact ¶
func NewContact() IContact
type IInfo ¶
type ILicense ¶
func NewLicense ¶
func NewLicense() ILicense
type IMethod ¶
type IMethod interface { // SetConsumes - sets the MIME types of accept data for the endpoint SetConsumes(c ...string) Producer // SetConsumes - sets the MIME types of return data for the endpoint SetProduces(p ...string) Consumer // AddResponse - adds a response AddResponse(сode int, description string, schema interface{}) Responser // AddFileParameter - adds a file response AddFileResponse(responseCode int, description string) Responser }
First, programmer set Consumes/Produces/Response
type ISwaggerAPI ¶
type ISwaggerAPI interface{}
type Info ¶
type Info struct { Description string `json:"description,omitempty"` Title string `json:"title,omitempty"` TermsOfService string `json:"termsOfService,omitempty"` Contact IContact `json:"contact,omitempty"` License ILicense `json:"license,omitempty"` Version string `json:"version,omitempty"` }
Information about the created swagger
func (*Info) SetContact ¶
func (*Info) SetDescription ¶
func (*Info) SetLicense ¶
func (*Info) SetTermOfService ¶
func (*Info) SetVersion ¶
type Informer ¶
type Informer interface {
SetInfo(i IInfo) ISwaggerAPI
}
type MapProperty ¶
type MapResponse ¶
type MapResponseCode ¶
func (MapResponseCode) Append ¶
func (arc MapResponseCode) Append(respCode int) string
type Method ¶
type Method struct { Description string `json:"description,omitempty"` Consumes []string `json:"consumes,omitempty"` Produces []string `json:"produces,omitempty"` Summary string `json:"summary,omitempty"` OperationID string `json:"operationId,omitempty"` // The parameters of requests Parameters ArrayParameters `json:"parameters,omitempty"` // The endpoint responses Responses MapResponse `json:"responses,omitempty"` // Counters for same codes for multiple responses ResponseCode MapResponseCode `json:"-"` }
Description the REST-method of endpoint
func (*Method) AddFileResponse ¶ added in v1.2.0
func (*Method) AddInBodyParameter ¶
func (m *Method) AddInBodyParameter(name, description string, t interface{}, required bool) AdderInParameter
func (*Method) AddInCookieParameter ¶
func (*Method) AddInFileParameter ¶ added in v1.2.0
func (m *Method) AddInFileParameter(name, description string) AdderInParameter
func (*Method) AddInHeaderParameter ¶
func (*Method) AddInPathParameter ¶
func (m *Method) AddInPathParameter(name, description string, t reflect.Kind) AdderInParameter
func (*Method) AddInQueryParameter ¶
func (*Method) AddResponse ¶
func (*Method) SetConsumes ¶
func (*Method) SetDescription ¶
func (*Method) SetProduces ¶
func (*Method) SetSummary ¶
func (m *Method) SetSummary(s string) ParameterAndResponser
type Parameter ¶
type Parameter struct { *BaseObject // How passed parameter - in body, in query or in path IN InType `json:"in,omitempty"` // Is a required parameter? Req bool `json:"required,omitempty"` }
func NewFileParameter ¶ added in v1.2.0
func NewParameter ¶
func (*Parameter) SetTypeName ¶
type ParameterAndResponser ¶
type ParameterAndResponser interface { // AddParameter - adds a response AddResponse(Code int, description string, schema interface{}) Responser // AddFileParameter - adds a file response AddFileResponse(responseCode int, description string) Responser // AddInBodyParameter - adds a request in body parameter AddInBodyParameter(name, description string, t interface{}, required bool) AdderInParameter // AddInPathParameter - adds a request in path parameter AddInPathParameter(name, description string, t reflect.Kind) AdderInParameter // AddInQueryParameter - adds a request in query parameter AddInQueryParameter(name, description string, t reflect.Kind, required bool) AdderInParameter // AddInHeaderParameter - adds a request in header parameter AddInHeaderParameter(name, description string, t reflect.Kind, required bool) AdderInParameter // AddInCookieParameter - adds a request in cookie parameter AddInCookieParameter(name, description string, t reflect.Kind, required bool) AdderInParameter // AddInFileParameter - adds a request in file parameter AddInFileParameter(name, description string) AdderInParameter }
type Property ¶
type Property struct { BaseObject Item *BaseObject `json:"items,omitempty"` }
Property definats a property item in Definition object
type Response ¶
type Response struct {
*BaseObject
}
func NewResponse ¶
func (*Response) SetTypeName ¶
type Schema ¶
type Schema struct { // Object format, for example: int64 is integer with format int64 Format string `json:"format,omitempty"` // Reference to a schema definition Ref string `json:"$ref,omitempty"` // Type name TypeName string `json:"type,omitempty"` // AdditionalProperties *AdditionalProperties `json:"additionalProperties,omitempty"` // Item *BaseObject `json:"items,omitempty"` // Type interface{} `json:"-"` }
type Summarer ¶
type Summarer interface { // SetDescription - sets a description of endpoint SetSummary(d string) ParameterAndResponser }
type Swagger ¶
type Swagger interface {
ReadDoc() string
}
Swagger is a interface to read swagger document.