当前位置: 首页 > news >正文

专注聊城做网站的公司做金融培训的网站

专注聊城做网站的公司,做金融培训的网站,wordpress 批量加密,兰州网络广告设计价格前提 go环境的配置、goctl的安装、go-zero的基本使用默认都会 需求 go-zero框架中,默认使用goctl命令生成的代码并没有统一响应格式,现在使用自定义模板实现统一响应格式: {"code": 0,"msg": "OK","d…

前提

go环境的配置、goctl的安装、go-zero的基本使用默认都会

需求

go-zero框架中,默认使用goctl命令生成的代码并没有统一响应格式,现在使用自定义模板实现统一响应格式:

{"code": 0,"msg": "OK","data": {}
}

步骤

1、下载模板

goctl template init

默认下载路径会在C盘
在这里插入图片描述
在这里插入图片描述

2、移动模板

将下载好的模板文件移动到项目目录中,以便后续操作,移动后的项目结构如下:
在这里插入图片描述

3、创建统一响应结构体

创建utils包、再创建统一响应结构体reponse.go
在这里插入图片描述

package utilsimport ("net/http""github.com/zeromicro/go-zero/rest/httpx"
)type Body struct {Code int         `json:"code"`Msg  string      `json:"msg"`Data interface{} `json:"data,omitempty"`
}func Response(w http.ResponseWriter, resp interface{}, err error) {var body Bodyif err != nil {body.Code = -1body.Msg = err.Error()} else {body.Msg = "OK"body.Data = resp}httpx.OkJson(w, body)
}

4、修改handler模板

将刚刚通过goctl template下载的模板中的handler.tpl替换成如下内容:
在这里插入图片描述

package {{.PkgName}}import ("net/http""gozero_gorm/utils""github.com/zeromicro/go-zero/rest/httpx"{{.ImportPackages}}
)func {{.HandlerName}}(svcCtx *svc.ServiceContext) http.HandlerFunc {return func(w http.ResponseWriter, r *http.Request) {{{if .HasRequest}}var req types.{{.RequestType}}if err := httpx.Parse(r, &req); err != nil {httpx.Error(w, err)return}{{end}}l := {{.LogicName}}.New{{.LogicType}}(r.Context(), svcCtx){{if .HasResp}}resp, {{end}}err := l.{{.Call}}({{if .HasRequest}}&req{{end}}){{if .HasResp}}utils.Response(w, resp, err){{else}}response.Response(w, nil, err){{end}} // 换成自己的结构体路径}
}

如果你定义的统一相应结构体在其他路径下,只需修改最后一行代码即可

{{if .HasResp}}utils.Response(w, resp, err){{else}}response.Response(w, nil, err){{end}} // 换成自己的结构体路径

5、生成代码

goctl api go --api .\index.api --dir . --home ..\template\

相比普通的api生成该命令指定了使用的模板,也就是 --home ..\template\这一项,由于模板中的handler.tpl已经被修改,所以生成后的代码会返回统一的响应格式

测试

在这里插入图片描述
可以看到响应结果如期望的那样

http://www.yayakq.cn/news/631288/

相关文章:

  • 中国十大管理咨询公司排名网站优化建设宁夏
  • 你做我评网站会自动查论文相似度吗咨询公司的经营范围有哪些
  • 个人网站模板h5wordpress 插件 教程视频教程
  • 贵阳企业网站模板电商网站怎么做优化
  • cms大型门户网站莒县网站设计
  • 瑞安联科网站建设免费ppt模板资源
  • 网站建设图片安徽建设银行网站
  • 长沙模板建站源码网站 权重
  • 贵阳网站制作方舟网络给网站做路由
  • 深圳网站建设总部2021年网站有人分享吗
  • domino 网站开发jsp网站开发教学
  • 数据库怎么做网站毕设做系统好还是做网站好
  • 临沂市建设局的网站桂林旅游必去十大景点
  • 网站超市源码创建公司为什么必须三个人
  • 济宁市做网站学校网站建设开发商
  • 做餐饮企业网站的费用河北项目网
  • 南京专业做网站的公司wordpress修改端口
  • 公司有域名 如何做网站wordpress主题无法更换
  • 厦门网站建设哪好顺义青岛网站建设
  • 如今做哪些网站致富网业车怎么打车
  • 怎么查看网站dns有那种做订单的网站吗
  • 网站下拉菜单html做多大新零售
  • 男女直接做那个的视频网站西安建设集团网站
  • 天津哪家做网站好成品网站源码1
  • 网站建设分几次付钱做盘石信用认证网站
  • form e哪个网站做专门做推广的网站
  • 网站主要应用内容营销案例分析
  • 怎么用网站做转换服务器linux wordpress建站教程
  • 女与男做那个的视频网站手机app与电脑网站的区别
  • 网站建设流程及构架航空总医院医院网站建设招标网站