Ai
1 Star 0 Fork 0

saxon134/go-utils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
server.go 1.18 KB
一键复制 编辑 原始数据 按行查看 历史
saxon134 提交于 2023-10-03 16:56 +08:00 . init
package saMicro
import (
"context"
"errors"
"gitee.com/saxon134/go-utils/saMicro/proto"
)
type Service interface {
Api(ctx context.Context, in *proto.Request) (ack *proto.Response, err error) //RPC服务接口方法
}
type baseServer struct {
}
func NewService() Service {
var server Service
server = &baseServer{}
return server
}
// Api
// @Description: client发起RPC接口请求,对外提供的服务
func (s baseServer) Api(ctx context.Context, in *proto.Request) (ack *proto.Response, err error) {
if in == nil || in.Method == "" {
err = errors.New("method is empty")
return
}
for k, v := range _handlers {
if k == in.Method {
var out = new(Response)
out, err = v(ctx, &Request{Method: in.Method, Data: in.Data})
if err == nil {
ack = &proto.Response{Data: out.Data}
}
return
}
}
err = errors.New("no such handler")
return
}
// Call client发起请求方法,由RPC内部调用,不对外服务
func (s baseServer) Call(ctx context.Context, in *Request) (ack *Response, err error) {
var out *proto.Response
out, err = s.Api(ctx, &proto.Request{Method: in.Method, Data: in.Data})
if err != nil {
return
}
ack = &Response{Data: out.Data}
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/saxon134/go-utils.git
git@gitee.com:saxon134/go-utils.git
saxon134
go-utils
go-utils
b2602dc8c3fc

搜索帮助