Documentation
¶
Overview ¶
Package "generated" provides primitives to interact with the AsyncAPI specification.
Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.
Package "generated" provides primitives to interact with the AsyncAPI specification.
Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.
Package "generated" provides primitives to interact with the AsyncAPI specification.
Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.
Package "generated" provides primitives to interact with the AsyncAPI specification.
Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.
Index ¶
- Constants
- Variables
- type AppController
- func (c *AppController) Close()
- func (c AppController) Errors() <-chan Error
- func (c *AppController) PublishPong(msg PongMessage) error
- func (c *AppController) SubscribeAll(as AppSubscriber) error
- func (c *AppController) SubscribePing(fn func(msg PingMessage)) error
- func (c *AppController) UnsubscribeAll()
- func (c *AppController) UnsubscribePing()
- type AppSubscriber
- type BrokerController
- type Error
- type MessageWithCorrelationID
- type NATSController
- type PingMessage
- type PongMessage
- type UniversalMessage
Constants ¶
const (
// CorrelationIDField is the name of the field that will contain the correlation ID
CorrelationIDField = "correlation_id"
)
Variables ¶
var ( // Generic error for AsyncAPI generated code ErrAsyncAPI = errors.New("error when using AsyncAPI") // ErrTimedOut is given when any timeout happen ErrTimedOut = fmt.Errorf("%w: time out", ErrAsyncAPI) // ErrNilBrokerController is raised when a nil broker controller is user ErrNilBrokerController = fmt.Errorf("%w: nil broker controller has been used", ErrAsyncAPI) // ErrNilAppSubscriber is raised when a nil app subscriber is user ErrNilAppSubscriber = fmt.Errorf("%w: nil app subscriber has been used", ErrAsyncAPI) // ErrNilClientSubscriber is raised when a nil client subscriber is user ErrNilClientSubscriber = fmt.Errorf("%w: nil client subscriber has been used", ErrAsyncAPI) // ErrAlreadySubscribedChannel is raised when a subscription is done twice // or more without unsubscribing ErrAlreadySubscribedChannel = fmt.Errorf("%w: the channel has already been subscribed", ErrAsyncAPI) )
Functions ¶
This section is empty.
Types ¶
type AppController ¶
type AppController struct {
// contains filtered or unexported fields
}
AppController is the structure that provides publishing capabilities to the developer and and connect the broker with the App
func NewAppController ¶
func NewAppController(bs BrokerController) (*AppController, error)
NewAppController links the App to the broker
func (*AppController) Close ¶
func (c *AppController) Close()
Close will clean up any existing resources on the controller
func (AppController) Errors ¶ added in v0.3.0
func (c AppController) Errors() <-chan Error
Errors will give back the channel that contains errors and that you can listen to handle errors Please take a look at Error struct form information on error
func (*AppController) PublishPong ¶
func (c *AppController) PublishPong(msg PongMessage) error
PublishPong will publish messages to 'pong' channel
func (*AppController) SubscribeAll ¶
func (c *AppController) SubscribeAll(as AppSubscriber) error
SubscribeAll will subscribe to channels on which the app is expecting messages
func (*AppController) SubscribePing ¶
func (c *AppController) SubscribePing(fn func(msg PingMessage)) error
SubscribePing will subscribe to new messages from 'ping' channel
func (*AppController) UnsubscribeAll ¶
func (c *AppController) UnsubscribeAll()
UnsubscribeAll will unsubscribe all remaining subscribed channels
func (*AppController) UnsubscribePing ¶
func (c *AppController) UnsubscribePing()
UnsubscribePing will unsubscribe messages from 'ping' channel
type AppSubscriber ¶
type AppSubscriber interface {
// Ping
Ping(msg PingMessage)
}
AppSubscriber represents all handlers that are expecting messages for App
type BrokerController ¶
type BrokerController interface {
// Publish a message to the broker
Publish(channel string, mw UniversalMessage) error
// Subscribe to messages from the broker
Subscribe(channel string) (msgs chan UniversalMessage, stop chan interface{}, err error)
}
BrokerController represents the functions that should be implemented to connect the broker to the application or the client
type MessageWithCorrelationID ¶ added in v0.4.0
type MessageWithCorrelationID interface {
CorrelationID() string
}
type NATSController ¶
type NATSController struct {
// contains filtered or unexported fields
}
NATSController is the NATS implementation for asyncapi-codegen
func NewNATSController ¶
func NewNATSController(connection *nats.Conn) *NATSController
NewNATSController creates a new NATSController that fulfill the BrokerLinker interface
func (*NATSController) Publish ¶
func (c *NATSController) Publish(channel string, um UniversalMessage) error
Publish a message to the broker
func (*NATSController) Subscribe ¶
func (c *NATSController) Subscribe(channel string) (msgs chan UniversalMessage, stop chan interface{}, err error)
Subscribe to messages from the broker
type PingMessage ¶
type PingMessage struct {
// Headers will be used to fill the message headers
Headers struct {
// Description: Correlation ID set by client
CorrelationID *string `json:"correlation_id"`
}
// Payload will be inserted in the message payload
Payload string
}
PingMessage is the message expected for 'Ping' channel
func NewPingMessage ¶
func NewPingMessage() PingMessage
func (PingMessage) CorrelationID ¶ added in v0.4.0
func (msg PingMessage) CorrelationID() string
CorrelationID will give the correlation ID of the message, based on AsyncAPI spec
func (*PingMessage) SetAsResponseFrom ¶ added in v0.5.0
func (msg *PingMessage) SetAsResponseFrom(req MessageWithCorrelationID)
SetAsResponseFrom will correlate the message with the one passed in parameter. It will assign the 'req' message correlation ID to the message correlation ID, both specified in AsyncAPI spec.
type PongMessage ¶
type PongMessage struct {
// Headers will be used to fill the message headers
Headers struct {
// Description: Correlation ID set by client on corresponding request
CorrelationID *string `json:"correlation_id"`
}
// Payload will be inserted in the message payload
Payload struct {
// Description: Pong message
Message string `json:"message"`
// Description: Pong creation time
Time time.Time `json:"time"`
}
}
PongMessage is the message expected for 'Pong' channel
func NewPongMessage ¶
func NewPongMessage() PongMessage
func (PongMessage) CorrelationID ¶ added in v0.4.0
func (msg PongMessage) CorrelationID() string
CorrelationID will give the correlation ID of the message, based on AsyncAPI spec
func (*PongMessage) SetAsResponseFrom ¶ added in v0.5.0
func (msg *PongMessage) SetAsResponseFrom(req MessageWithCorrelationID)
SetAsResponseFrom will correlate the message with the one passed in parameter. It will assign the 'req' message correlation ID to the message correlation ID, both specified in AsyncAPI spec.
type UniversalMessage ¶
UniversalMessage is a wrapper that will contain all information regarding a message