В моем приложении две модели 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:"-"`
}
Используя Джин, я пытаюсь проверить опубликованные данные:
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"
]
}
]
}