跳到主要内容

请求绑定与校验

如何绑定并校验请求模型?​

type CreateArticleRequest struct {
Title string `json:"title" vd:"len($)>0 && len($)<=100"`
Content string `json:"content" vd:"len($)>0"`
Tags []string `json:"tags"`
}

func createArticle(ctx context.Context, c *app.RequestContext) {
var req CreateArticleRequest
if err := c.BindAndValidate(&req); err != nil {
writeError(c, consts.StatusBadRequest, "INVALID_ARGUMENT", "invalid request")
return
}
// 调用 Service。
}

如何指定字段的绑定来源?​

  • path: 资源标识,例如 /articles/:id;
  • query: 分页、过滤和排序;
  • header: 认证、幂等键和内容协商;
  • json: JSON 请求体;
  • form: 表单或文件上传元数据;