请求绑定与校验
如何绑定并校验请求模型?
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: 表单或文件上传元数据;