Go - Topic.Subscribe()
Subscribe a handler to a topic and receive new events for processing.
import ("fmt""github.com/nitrictech/go-sdk/faas""github.com/nitrictech/go-sdk/nitric")func main() {nitric.NewTopic("updates").Subscribe(func(ctx *faas.EventContext, _ faas.EventHandler) (*faas.EventContext, error) {fmt.Println("received update")return ctx, nil})nitric.Run()}
Parameters
- Name
middleware
- Required
- Required
- Type
- EventMiddleware
- Description
The middleware (code) to be triggered by the topic.
Examples
Subscribe to a topic
import ("fmt""github.com/nitrictech/go-sdk/faas""github.com/nitrictech/go-sdk/nitric")func main() {nitric.NewTopic("updates").Subscribe(func(ctx *faas.EventContext, _ faas.EventHandler) (*faas.EventContext, error) {fmt.Println("received update")return ctx, nil})nitric.Run()}
Subscribe to a topic with multiple middleware
import ("fmt""github.com/nitrictech/go-sdk/faas""github.com/nitrictech/go-sdk/nitric")func validateUpdate(ctx *faas.EventContext, next faas.EventHandler) (*faas.EventContext, error) {// validate updatereturn next(ctx)}func handleUpdate(ctx *faas.EventContext, next faas.EventHandler) (*faas.EventContext, error) {// handle updatereturn next(ctx)}func main() {nitric.NewTopic("updates").Subscribe(faas.ComposeEventMiddleware(validateUpdate, handleUpdate))nitric.Run()}
Notes
- A function may only subscribe to a topic once, if multiple subscribers are required, create them in different functions.
- A function may subscribe to OR publish to a topic but not both
Last updated on Oct 30, 2024