Documentation
¶
Index ¶
- Constants
- func IfContextSetWith[T any](ctx context.Context, key ContextKey, fn func(value T))
- func IfContextValueEquals[T comparable](ctx context.Context, key ContextKey, expected T, fn func())
- type BrokerController
- type BrokerMessage
- type ContextKey
- type DummyLogger
- type LogInfo
- type Logger
- type Middleware
- type NextMiddleware
Constants ¶
const Prefix = "asyncapi-"
Variables ¶
This section is empty.
Functions ¶
func IfContextSetWith ¶
func IfContextSetWith[T any](ctx context.Context, key ContextKey, fn func(value T))
IfContextSetWith executes the function if the key is set in the context as a string
func IfContextValueEquals ¶
func IfContextValueEquals[T comparable](ctx context.Context, key ContextKey, expected T, fn func())
IfContextValueEquals executes the function if the key is set in the context as a given type and the value is equal to the expected value
Types ¶
type BrokerController ¶
type BrokerController interface {
// SetLogger set a logger that will log operations on broker controller
SetLogger(logger Logger)
// Publish a message to the broker
Publish(ctx context.Context, channel string, mw BrokerMessage) error
// Subscribe to messages from the broker
Subscribe(ctx context.Context, channel string) (msgs chan BrokerMessage, 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 BrokerMessage ¶
BrokerMessage is a wrapper that will contain all information regarding a message
type ContextKey ¶
type ContextKey string
ContextKey is the type of the keys used in the context
const ( // ContextKeyIsProvider is the name of the provider this data is coming from. // When coming from a generated client, it is `asyncapi` ContextKeyIsProvider ContextKey = Prefix + "provider" // ContextKeyIsChannel is the name of the channel this data is coming from. ContextKeyIsChannel ContextKey = Prefix + "channel" // ContextKeyIsMessageDirection is the direction this data is coming from. // It can be either "publication" or "reception" ContextKeyIsMessageDirection ContextKey = Prefix + "operation" // ContextKeyIsMessage is the message that has been sent or received ContextKeyIsMessage ContextKey = Prefix + "message" // ContextKeyIsCorrelationID is the correlation ID of the message ContextKeyIsCorrelationID ContextKey = Prefix + "correlationID" )
func (ContextKey) String ¶
func (k ContextKey) String() string
String returns the string representation of the key
type DummyLogger ¶
type DummyLogger struct {
}
DummyLogger is a logger that does not log anything
type LogInfo ¶
type LogInfo struct {
Key string
Value interface{}
}
LogInfo is a key-value pair that will be added to the log
type Logger ¶
type Logger interface {
// Info logs information based on a message and key-value elements
Info(ctx context.Context, msg string, info ...LogInfo)
// Error logs error based on a message and key-value elements
Error(ctx context.Context, msg string, info ...LogInfo)
}
Logger is the interface that must be implemented by a logger
type Middleware ¶
type Middleware func(ctx context.Context, next NextMiddleware) context.Context
Middleware is the signature of the function that needs to be implemented to use middleware functionnality
You can call the next middleware during the execution of the defined middleware in order to wrap code execution (for example, to time execution, or recover in case of panic).
type NextMiddleware ¶
NextMiddleware represents the next middleware that can be executed during the previous middleware. If this is already the last middleware, it will execute the appropriate autogenerated code for reception/sending of messages.