ginrpc web ginrpc

afocus2023-06-03 00:05:40 • 1906 次点击    
这是一个分享于 2023-06-03 00:05:40 的项目,其中的信息可能已经有所发展或是发生改变。

ginrpc

用于 RPC 风格编码的 Gin 中间件

  • 高性能 使用泛型而不是反射,没有性能损失
  • 简单且可定制
  • 自动绑定参数并验证
  • 统一的响应/错误处理

安装

$ go get github.com/apicat/ginrpc

使用

基本方式

使用 ginrpc.Handle 转换你的rpc函数,仅此而已

type In struct {
    ID int64      `uri:"id" binding:"required"`
}

type Out struct {
    Message string `json:"message"`
}

func rpcHandleDemo(c *gin.Context, in *In) (*Out, error) {
    msg := fmt.Sprintf(" myid = %d", in.ID)
    return &Out{Message: msg}, nil
}

func main() {
    e := gin.Default()
    e.POST("/example/:id", ginrpc.Handle(rpcHandleDemo))
}

自定义方式

通过中间件注册配置信息

  • ReponseRender 自定义响应处理。
  • AutomaticBinding 你可能想自己处理绑定,因此可以禁用默认的自动绑定。默认是启用的
  • RequestBeforeHook 添加一个前置钩子。 比如打印请求参数,或者自定义绑定可以在这里处理

查看完整示例

e := gin.Default()
e.Use(ginrpc.AutomaticBinding(false), ginrpc.RequestBeforeHook(customBind))

A Gin middleware for RPC-Style codingRead More

Latest commit to the main branch on 1-4-2024
Download as zip
授权协议:
MIT
开发语言:
go 查看源码»
1906 次点击  
加入收藏 微博
0 回复
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传