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) AddMiddlewares(middleware ...middleware.Middleware)
- func (c *AppController) Close(ctx context.Context)
- func (c *AppController) SetLogger(logger log.Interface)
- func (c *AppController) SubscribeAll(ctx context.Context, as AppSubscriber) error
- func (c *AppController) SubscribeHello(ctx context.Context, fn func(ctx context.Context, msg HelloMessage, done bool)) error
- func (c *AppController) UnsubscribeAll(ctx context.Context)
- func (c *AppController) UnsubscribeHello(ctx context.Context)
- type AppSubscriber
- type BrokerController
- type Error
- type HelloMessage
- type MessageWithCorrelationID
- type NATSController
- func (c *NATSController) Publish(_ context.Context, channel string, um UniversalMessage) error
- func (c *NATSController) SetLogger(logger log.Interface)
- func (c *NATSController) SetQueueName(name string)
- func (c *NATSController) Subscribe(ctx context.Context, channel string) (msgs chan UniversalMessage, stop chan interface{}, err error)
- 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") // ErrContextCanceled is given when a given context is canceled ErrContextCanceled = fmt.Errorf("%w: context canceled", 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) // ErrSubscriptionCanceled is raised when expecting something and the subscription has been canceled before it happens ErrSubscriptionCanceled = fmt.Errorf("%w: the subscription has been canceled", 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) AddMiddlewares ¶ added in v0.17.0
func (c *AppController) AddMiddlewares(middleware ...middleware.Middleware)
AddMiddlewares attaches middlewares that will be executed when sending or receiving messages
func (*AppController) Close ¶
func (c *AppController) Close(ctx context.Context)
Close will clean up any existing resources on the controller
func (*AppController) SetLogger ¶ added in v0.15.0
func (c *AppController) SetLogger(logger log.Interface)
SetLogger attaches a logger that will log operations on controller
func (*AppController) SubscribeAll ¶
func (c *AppController) SubscribeAll(ctx context.Context, as AppSubscriber) error
SubscribeAll will subscribe to channels without parameters on which the app is expecting messages. For channels with parameters, they should be subscribed independently.
func (*AppController) SubscribeHello ¶
func (c *AppController) SubscribeHello(ctx context.Context, fn func(ctx context.Context, msg HelloMessage, done bool)) error
SubscribeHello will subscribe to new messages from 'hello' channel.
Callback function 'fn' will be called each time a new message is received. The 'done' argument indicates when the subscription is canceled and can be used to clean up resources.
func (*AppController) UnsubscribeAll ¶
func (c *AppController) UnsubscribeAll(ctx context.Context)
UnsubscribeAll will unsubscribe all remaining subscribed channels
func (*AppController) UnsubscribeHello ¶
func (c *AppController) UnsubscribeHello(ctx context.Context)
UnsubscribeHello will unsubscribe messages from 'hello' channel
type AppSubscriber ¶
type AppSubscriber interface {
// Hello
Hello(ctx context.Context, msg HelloMessage, done bool)
}
AppSubscriber represents all handlers that are expecting messages for App
type BrokerController ¶
type BrokerController interface {
// SetLogger set a logger that will log operations on broker controller
SetLogger(logger log.Interface)
// Publish a message to the broker
Publish(ctx context.Context, channel string, mw UniversalMessage) error
// Subscribe to messages from the broker
Subscribe(ctx context.Context, channel string) (msgs chan UniversalMessage, stop chan interface{}, err error)
// SetQueueName sets the name of the queue that will be used by the broker
SetQueueName(name string)
}
BrokerController represents the functions that should be implemented to connect the broker to the application or the client
type HelloMessage ¶
type HelloMessage struct {
// Payload will be inserted in the message payload
Payload string
}
HelloMessage is the message expected for 'Hello' channel
func NewHelloMessage ¶
func NewHelloMessage() HelloMessage
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(_ context.Context, channel string, um UniversalMessage) error
Publish a message to the broker
func (*NATSController) SetLogger ¶ added in v0.15.0
func (c *NATSController) SetLogger(logger log.Interface)
SetLogger set a custom logger that will log operations on broker controller
func (*NATSController) SetQueueName ¶ added in v0.14.0
func (c *NATSController) SetQueueName(name string)
SetQueueName sets a custom queue name for channel subscription
It can be used for multiple applications listening one the same channel but wants to listen on different queues.
func (*NATSController) Subscribe ¶
func (c *NATSController) Subscribe(ctx context.Context, channel string) (msgs chan UniversalMessage, stop chan interface{}, err error)
Subscribe to messages from the broker
type UniversalMessage ¶
UniversalMessage is a wrapper that will contain all information regarding a message