Building a Service
Creating a NATS Service
package main
import (
"context"
"fmt"
"os"
"strings"
"github.com/nats-io/nats.go"
services "github.com/nats-io/nats.go/micro"
)
func main() {
ctx := context.Background()
natsUrl := os.Getenv("NATS_URL")
if len(strings.TrimSpace(natsUrl)) == 0 {
natsUrl = nats.DefaultURL
}
fmt.Printf("Echo service using NATS url '%s'\n", natsUrl)
nc, err := nats.Connect(natsUrl)
if err != nil {
panic(err)
}
// request handler
echoHandler := func(req services.Request) {
req.Respond(req.Data())
}
fmt.Println("Starting echo service")
_, err = services.AddService(nc, services.Config{
Name: "EchoService",
Version: "1.0.0",
// base handler
Endpoint: &services.EndpointConfig{
Subject: "svc.echo",
Handler: services.HandlerFunc(echoHandler),
},
})
if err != nil {
panic(err)
}
<-ctx.Done()
}Running our Service
Static Compilation
Last updated
Was this helpful?