好久之前写过一个主动创立, 校验恳求参数的文章: 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 ¶m.LoginResponse{Token: "token"}, nil
}
只需要给函数增加一行注释, 注释工商银行没有要求必须是函数公积金注释第几行, 留意 //
后面没有空格, golahttpwatchnd 左边就会呈现一个运gitlab行按钮接口自动化,httpclient 也能够在包目录下履行 go generate
指令或许 genxHTTP
, 东西会扫描当前包下所有带有该注释的函数, 而且以文件做区分github中文官网网页生成对应的绑定参giti轮胎数代github中github是什么文官网网页码.
//go:generate genx handler
生成后的代码大概如下
func GenxTestHandler(ctx *gin.Context) {
req := ¶m.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 中提交.