Golang iris框架使用

validate验证

iris框架并没有集成参数的validate验证,但是我们可以使用 go-playground/validator 来完成校验

定义request结构体

type UserGetUinfos struct {
    Ids []string `json:"ids" validate:"required"`
}

校验参数

//找到request结构体
var req request.UserGetUinfos
//读取参数,并赋值到req
ctx.ReadJSON(&req)
//validate 参数校验
validate := validator.New()
err := validate.Struct(&req)
//返回所有http状态码都是200
ctx.StatusCode(iris.StatusOK)
if err != nil{
    ctx.JSON(response.ApiResource(response.BAD_REQUEST, ""))
    return
}
//correct code...

validate定义规则

  • required 必须包含这个字段

参考文章

使用 pprof

这里主要是用 github.com/kataras/iris/middleware/pprof中间件来做

加载 pprof 路由

// 记载主路由
api.Any("/debug/pprof", pprof.New())
// 加载子路由
api.Any("/debug/pprof/{action:path}", pprof.New())

查看

通过web访问

http://localhost:9991/debug/pprof 这样就可以直接很直观的通过web界面看了

使用 go tool pprof 查看topN

需要等待30秒

go tool pprof http://127.0.0.1:9991/debug/pprof/profile

# 这样就进入到了交互式界面
  • 输入 text 就显示 cpu 占用最多的topN
  • 输入svg 就导出了svg图
直接使用参数导出
go tool pprof [-text|-svg] http://127.0.0.1:9991/debug/pprof/profile

# 还可以导出到指定目录
go tool pprof -svg http://127.0.0.1:9991/debug/pprof/profile /tmp/cpu.svg

参考文章