validation - Go Gin Validate:以 JSON 格式返回错误
问题描述
我的应用中有两个 GORM 模型:
type Author struct {
Model
Name string `json:"name" binding:"required"`
Books []Book `json:"books" gorm:"foreignkey:AuthorID" binding:"dive"`
}
type Book struct {
Model
Name string `json:"name" binding:"required"`
AuthorID uuid.UUID `json:"-"`
}
使用 Gin,我正在尝试验证发布的数据:
func createAuthor(c *gin.Context) {
var author Author
if err := c.ShouldBindJSON(&author); err != nil {
errors, _ := err.(validator.ValidationErrors)
e := make(map[string]string)
for _, err := range errors {
e[err.Field()] = err.Tag()
}
c.JSON(400, e)
return
}
db.Create(&author)
c.JSON(200, author)
}
发布类似的内容时:
{
"name": "Author name",
"books": [
{}
]
}
您将收到如下错误的响应:
{
"Name": "required"
}
我想得到的是以下内容:
{
"books": [
{
"name": [
"required"
]
}
]
}
解决方案
推荐阅读
- java - 需要从数据库中获取数据并使用java将其存储在excel中
- django - 弹性搜索聚合 [python]
- python - Flask SQL Alchemy vs MyPy - 模型类型错误
- python - 由于 linux 和 windows 上的路径分隔符不同,Python ssh 程序无法运行
- scala - 为 scala 嵌套案例类创建 cassandra 表
- excel - 如何在 Power BI 表中跨维度乘以度量?
- c# - 文档已移动 201 从 WebResponse 中删除
- javascript - 如何在 Firebase 云功能中添加时间戳
- c# - 为不同的主体抛出 AmbiguousMatchException
- php - 与 Eloquent/Laravel 的复杂关系