Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder is an SDK builder. Builder works in two steps: First, it loads the OpenAPI specs and pre-processes them for code generation by transforming the specs into intermediary representation. Secondly, it generates and writes the SDK to desired destination.
func New ¶
New creates a new Builder. Call [Build.Load] to load in OpenAPI specs and [Build.Build] to generate SDK based on provided config.
func (*Builder) Build ¶
Build the SDK and write it to designated output directory. The OpenAPI specs first need to be loaded using Builder.Load.
func (*Builder) Load ¶
Load loads OpenAPI specs into the builder. To generated the SDK, call Builder.Build.
type Config ¶
type Config struct {
// Out is the output directory that the SDK will be written to.
Out string
// Name is the name of the product / service.
Name string
}
Config is builder configuration which configures output options.
type EnumDeclaration ¶
type EnumDeclaration[E cmp.Ordered] struct { Type TypeDeclaration Values []EnumOption[E] }
EnumDeclaration holds the information for enum types
func (*EnumDeclaration[E]) String ¶
func (et *EnumDeclaration[E]) String() string
type EnumOption ¶
type Method ¶
type Method struct {
Description string
HTTPMethod string
FunctionName string
ResponseType *ResponseType
Path string
PathParams []Parameter
QueryParams *Parameter
HasBody bool
Responses []Response
}
Method describes a client method. Methods map one-to-one to OpenAPI operations.
func (Method) ParamsString ¶
type NamedSchema ¶
type NamedSchema struct {
Ref string
Schema *base.SchemaProxy
}
type OneOfDeclaration ¶
func (*OneOfDeclaration) String ¶
func (o *OneOfDeclaration) String() string
type ResponseType ¶
type Sample ¶
type Sample struct {
ID string `json:"id"`
OperationID string `json:"operationId"`
Example string `json:"example,omitempty"`
Summary string `json:"summary,omitempty"`
Description string `json:"description,omitempty"`
HTTPMethod string `json:"httpMethod"`
Path string `json:"path"`
Source string `json:"sample"`
}
Sample is a complete, formatted Go program for one OpenAPI operation example.
type SampleCatalog ¶
type SampleCatalog struct {
SchemaVersion int `json:"schemaVersion"`
Language string `json:"language"`
SDK SDK `json:"sdk"`
OpenAPIVersion string `json:"openAPIVersion"`
Samples []Sample `json:"samples"`
}
SampleCatalog is the versioned JSON contract consumed by documentation sites.
type StructField ¶
type StructField struct {
// Name of the field
Name string
// Type of the field, either primitive type (e.g. string) or if the field
// is a schema reference then the type of the schema.
Type string
// Tags to apply to the field, this would usually be json serialization
// information.
Tags map[string][]string
// Optional field.
Optional bool
// Pointer indicates whether the field should be a pointer in the generated struct.
Pointer bool
Comment string
Parameter *v3.Parameter
Schema *base.SchemaProxy
}
StructField holds the information for StructField of a type.
func (*StructField) String ¶
func (f *StructField) String() string
type TypeDeclaration ¶
type TypeDeclaration struct {
// Name of the type
Name string
// Type describes the type of the type (e.g. struct, int64, string)
Type string
// Alias indicates whether the declaration aliases Type instead of defining a new type.
Alias bool
// Fields holds the information for the field
Fields []StructField
// Comment holds the description of the type
Comment string
Response *v3.Response
Operation *v3.Operation
Schema *base.Schema
}
TypeDeclaration holds the information for generating a type. TODO: split into struct, alias, etc.
func (*TypeDeclaration) String ¶
func (tt *TypeDeclaration) String() string