接口参数绑定, 公共处理代码生成工具

好久之前写过一个主动创立, 校验恳求参数的文章: gin 主动映射参数及主动校验, 文章介绍了一种经过反射创立恳求参数, 绑定恳求参数到实例, 校验处理, 并调用 Handle枸杞rFunc 的手段.giti 最近我想到用代码生成来做这个功giti轮胎能, 这样就没有反射git命令带来的功用问题, 趁便玩一下 go 语言元编程.

运用该东西后, 接口处理http 302函数将变成下面这样:github是什么

func TestHandler(ctx *gin.Context, request *param.Request) (*param.Response, error)

这个东西能够生成一个包装函数, 帮你做那些无聊的操作, 比方创立恳求参数结构体GitHub, 绑定恳求参数, 绑定呼应, 校验参数等等之类的, 生成的包装函数再调用这个函数处理真实的业务, 设置路由的时分改成生接口测验成的包装函数即可.

安装

这个是一个http 302东西, 不会依赖到项目,工龄越长退休金越多吗 如果呈现找不到指令, 记住增加 gopath/bin 目录到环境变量.

go install github.com/dengzii/genx

效果

运用 genx 后, 咱github汤姆们的 API 处理函数就变成下面这姿态了, 函数第二个参数就是恳求绑定的结构体, 回来的分别是呼应体和过错, 所gitee有参数都是可选的, 但是次序不可变, 可选指针, 例如没有恳求参数则去除第二个参数即可.

//go:generate genx handler
func TestHandler(ctx *gin.Context, request *param.TestRequest) (*param.TestResponse, error) {
// ...
return &param.LoginResponse{Token: "token"}, nil
}

只需要给函数增加一行注释, 注释工商银行没有要求必须是函数公积金注释第几行, 留意 // 后面没有空格, golahttpwatchnd 左边就会呈现一个运gitlab行按钮接口自动化,httpclient 也能够在包目录下履行 go generate 指令或许 genxHTTP, 东西会扫描当前包下所有带有该注释的函数, 而且以文件做区分github中文官网网页生成对应的绑定参giti轮胎数代github中github是什么文官网网页码.

//go:generate genx handler

生成后的代码大概如下

func GenxTestHandler(ctx *gin.Context) {
   req := &param.LoginRequest{}
   _ = ctx.BindJSON(req)
   resp, err := TestHandler(ctx, req)
   if err != nil {
      ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
      return
   }
   ctx.JSON(http.StatusOK, resp)
}

之后咱们绑定路gitee由的时分就在原函数前加一个 Genx接口crc错误计数 前缀接口crc过错计数即可

计划

现在只支撑最根底的功用: 绑定参数,工龄越长退休金越多吗 校验什么的都还没有, 暂时只支撑 gin, 不知道大家对这个小东西的观点如何, 欢迎在谈论区宣布你的观点.

  • 生成 ap工龄越长退休金越多吗i handler func 绑定函数
  • 生成绑定 j工商银行son 恳求参数到httpwatch接口crc过错计数构体
  • 生成绑定 json 呼应
  • 支撑定多种参数类枸杞型(Query, Form 等)
  • 支撑 gin 外的 web framework
  • 自定义校验器支撑
  • 生成公共呼应包装接口和抽象类的区别github是什么
  • 参数校验
  • 过错处理及自定义处理过程

github: github.com/dengzii/gen…

觉得不错的HTTP话 star 一下吧, 任何主意都能够在 ishttp协议suehttpclient 中提交.

发表评论

提供最优质的资源集合

立即查看 了解详情