Documentation
¶
Index ¶
- Constants
- type Channel
- type Components
- type CorrelationID
- type Extensions
- type GoTypeImportExtension
- type GoTypeImportName
- type GoTypeImportPath
- type Info
- type Message
- type MessageField
- type MessageType
- type Operation
- type Parameter
- type Schema
- type Specification
- func (s Specification) CustomImports() ([]string, error)
- func (s Specification) GetPublishSubscribeCount() (publishCount, subscribeCount uint)
- func (s Specification) MajorVersion() int
- func (s *Specification) Process()
- func (s Specification) ReferenceMessage(ref string) *Message
- func (s Specification) ReferenceParameter(ref string) *Parameter
- func (s Specification) ReferenceSchema(ref string) *Schema
Constants ¶
const (
// MajorVersion is the major version of this AsyncAPI implementation.
MajorVersion = 2
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Channel ¶
type Channel struct { Parameters map[string]*Parameter `json:"parameters"` Subscribe *Operation `json:"subscribe"` Publish *Operation `json:"publish"` // Non AsyncAPI fields Name string `json:"-"` Path string `json:"-"` }
Channel is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#channelItemObject
func (Channel) GetChannelMessage ¶
GetChannelMessage will return the channel message WARNING: if there is a reference, then it won't be followed.
func (*Channel) Process ¶
func (c *Channel) Process(path string, spec Specification)
Process processes the Channel to make it ready for code generation.
type Components ¶
type Components struct { Messages map[string]*Message `json:"messages"` Schemas map[string]*Schema `json:"schemas"` Parameters map[string]*Parameter `json:"parameters"` }
Components is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#componentsObject
func (*Components) Process ¶
func (c *Components) Process(spec Specification)
Process processes the Components structure to make it ready for code generation.
type CorrelationID ¶
type CorrelationID struct { Description string `json:"description"` Location string `json:"location"` }
CorrelationID is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#correlationIdObject
type Extensions ¶
type Extensions struct { // Setting custom Go type when generating schemas ExtGoType string `json:"x-go-type"` // Setting custom import statements for ExtGoType ExtGoTypeImport *GoTypeImportExtension `json:"x-go-type-import"` }
Extensions holds additional properties defined for asyncapi-codegen that are out of the AsyncAPI spec.
type GoTypeImportExtension ¶
type GoTypeImportExtension struct { Name GoTypeImportName `json:"name"` // Package name for import, optional Path GoTypeImportPath `json:"path"` // Path to package to import }
GoTypeImportExtension specifies the required import statement for the x-go-type extension. For example, GoTypeImportExtension{Name: "myuuid", Path: "github.com/google/uuid"} will generate `import myuuid github.com/google/uuid`.
type GoTypeImportName ¶
type GoTypeImportName string
GoTypeImportName is the import name type for x-go-type-import.
type GoTypeImportPath ¶
type GoTypeImportPath string
GoTypeImportPath is the import path type for x-go-type-import.
type Info ¶
type Info struct { Title string `json:"title"` Version string `json:"version"` Description string `json:"description"` }
Info is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#infoObject
type Message ¶
type Message struct { Description string `json:"description"` Headers *Schema `json:"headers"` OneOf []*Message `json:"oneOf"` Payload *Schema `json:"payload"` CorrelationID *CorrelationID `json:"correlationID"` Reference string `json:"$ref"` // --- Non AsyncAPI fields ------------------------------------------------- Name string `json:"-"` ReferenceTo *Message `json:"-"` // CorrelationIDLocation will indicate where the correlation id is // According to: https://www.asyncapi.com/docs/reference/specification/v2.6.0#correlationIDObject CorrelationIDLocation string `json:"-"` CorrelationIDRequired bool `json:"-"` }
Message is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#messageObject
func (*Message) MergeWith ¶
func (msg *Message) MergeWith(spec Specification, msg2 Message)
MergeWith merges the Message with another one.
func (*Message) Process ¶
func (msg *Message) Process(name string, spec Specification)
Process processes the Message to make it ready for code generation.
type MessageField ¶
type MessageField string
MessageField is a structure that represents the type of a field.
const ( // MessageFieldIsHeader represents the message field of a header. MessageFieldIsHeader MessageField = "header" // MessageFieldIsPayload represents the message field of a payload. MessageFieldIsPayload MessageField = "payload" )
func (MessageField) String ¶
func (t MessageField) String() string
String returns the string representation of the type.
type MessageType ¶
type MessageType string
MessageType is a structure that represents the type of a field.
const ( // MessageTypeIsArray represents the type of an array. MessageTypeIsArray MessageType = "array" // MessageTypeIsHeader represents the type of a header. MessageTypeIsHeader MessageType = "header" // MessageTypeIsObject represents the type of an object. MessageTypeIsObject MessageType = "object" // MessageTypeIsString represents the type of a string. MessageTypeIsString MessageType = "string" // MessageTypeIsInteger represents the type of an integer. MessageTypeIsInteger MessageType = "integer" // MessageTypeIsPayload represents the type of a payload. MessageTypeIsPayload MessageType = "payload" )
func (MessageType) String ¶
func (t MessageType) String() string
String returns the string representation of the type.
type Operation ¶
Operation is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#operationObject
type Parameter ¶
type Parameter struct { Description string `json:"description"` Schema *Schema `json:"schema"` Location string `json:"location"` Reference string `json:"$ref"` // Non AsyncAPI fields Name string `json:"-"` ReferenceTo *Parameter `json:"-"` }
Parameter is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#parameterObject
func (*Parameter) Process ¶
func (p *Parameter) Process(name string, spec Specification)
Process processes the Parameter structure to make it ready for code generation.
type Schema ¶
type Schema struct { AllOf []*Schema `json:"allOf"` AnyOf []*Schema `json:"anyOf"` OneOf []*Schema `json:"oneOf"` Type string `json:"type"` Description string `json:"description"` Format string `json:"format"` Properties map[string]*Schema `json:"properties"` Items *Schema `json:"items"` Reference string `json:"$ref"` Required []string `json:"required"` // Non AsyncAPI fields Name string `json:"-"` ReferenceTo *Schema `json:"-"` IsRequired bool `json:"-"` // Embedded extended fields Extensions }
Schema is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#schemaObject
func NewSchema ¶
func NewSchema() Schema
NewSchema creates a new Schema structure with initialized fields.
func (Schema) IsFieldRequired ¶
IsFieldRequired checks if a field is required in the asyncapi struct.
func (*Schema) MergeWith ¶
func (a *Schema) MergeWith(spec Specification, a2 Schema)
MergeWith merges the given Schema structure with another one (basically for AllOf, AnyOf, OneOf, etc).
type Specification ¶
type Specification struct { Version string `json:"asyncapi"` Info Info `json:"info"` Channels map[string]*Channel `json:"channels"` Components Components `json:"components"` }
Specification is the asyncapi specification struct that will be used to generate code. It should contains every information given in the asyncapi specification. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#schema
func (Specification) CustomImports ¶
func (s Specification) CustomImports() ([]string, error)
CustomImports collects all custom import paths set by x-go-type-imports in all Schema Objects in the Specification. Returns import strings like `alias "abc.xyz/repo/package"` for code generation. Returns error when import name conflicts.
func (Specification) GetPublishSubscribeCount ¶
func (s Specification) GetPublishSubscribeCount() (publishCount, subscribeCount uint)
GetPublishSubscribeCount gets the count of 'publish' channels and the count of 'subscribe' channels inside the Specification.
func (Specification) MajorVersion ¶
func (s Specification) MajorVersion() int
MajorVersion returns the asyncapi major version of this document. This function is used mainly by the interface.
func (*Specification) Process ¶
func (s *Specification) Process()
Process processes the Specification to make it ready for code generation.
func (Specification) ReferenceMessage ¶
func (s Specification) ReferenceMessage(ref string) *Message
ReferenceMessage returns the Message struct corresponding to the given reference.
func (Specification) ReferenceParameter ¶
func (s Specification) ReferenceParameter(ref string) *Parameter
ReferenceParameter returns the Parameter struct corresponding to the given reference.
func (Specification) ReferenceSchema ¶
func (s Specification) ReferenceSchema(ref string) *Schema
ReferenceSchema returns the Any struct corresponding to the given reference.