1 Star 0 Fork 0

凉夕 / generic-go-kit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
nats_micro.go 2.11 KB
一键复制 编辑 原始数据 按行查看 历史
凉夕 提交于 2024-01-04 14:10 . [Create] 初始化项目
package coder
import (
"context"
"github.com/nats-io/nats.go"
"github.com/nats-io/nats.go/micro"
)
// DecodeNatsMicroRequestFunc extracts a user-domain request object from a publisher
// request object. It's designed to be used in NATS subscribers, for subscriber-side
// endpoints. One straightforward DecodeNatsMicroRequestFunc could be something that
// JSON decodes from the request body to the concrete response type.
type DecodeNatsMicroRequestFunc func(context.Context, micro.Request) (request interface{}, err error)
// EncodeNatsMicroRequestFunc encodes the passed request object into the NATS request
// object. It's designed to be used in NATS publishers, for publisher-side
// endpoints. One straightforward EncodeNatsMicroRequestFunc could something that JSON
// encodes the object directly to the request payload.
type EncodeNatsMicroRequestFunc func(context.Context, micro.Request, interface{}) error
// EncodeNatsMicroResponseFunc encodes the passed response object to the subscriber reply.
// It's designed to be used in NATS subscribers, for subscriber-side
// endpoints. One straightforward EncodeNatsMicroResponseFunc could be something that
// JSON encodes the object directly to the response body.
type EncodeNatsMicroResponseFunc func(context.Context, string, *nats.Conn, interface{}) error
// DecodeNatsMicroResponseFunc extracts a user-domain response object from an NATS
// response object. It's designed to be used in NATS publisher, for publisher-side
// endpoints. One straightforward DecodeNatsMicroResponseFunc could be something that
// JSON decodes from the response payload to the concrete response type.
type DecodeNatsMicroResponseFunc func(context.Context, micro.Request) (response interface{}, err error)
// EncodeJSONToNatsMicroRequest is an EncodeNatsMicroRequestFunc that serializes the request as a
// JSON object to the Data of the Msg. Many JSON-over-NATS services can use it as
// a sensible default.
func EncodeJSONToNatsMicroRequest(_ context.Context, msg micro.Request, request interface{}) error {
//b, err := json.Marshal(request)
//if err != nil {
// return err
//}
//msg.Data = b
return nil
}
1
https://gitee.com/coldsunset/generic-go-kit.git
git@gitee.com:coldsunset/generic-go-kit.git
coldsunset
generic-go-kit
generic-go-kit
v0.0.1

搜索帮助