Допустим, есть некий метод createBlog, который создает объект Blog в JSON. У этого объекта(определена как структура) есть после text, в который записывается какой-то текст в запросе. Но если в Body указать другое после, например "incorrText: bla-bla", он запишет в БД объект с пустым значением text.
Можно прикрутить валидацию на body запроса, или просто руками проверять
А как проверяется-то это? echo.Context вроде не имеет методов для получения поля из Body.
Получаете весь объект, а потом уже проверяете поля
Не понимаю, какой объект? Мне же нужно проверить поле Body, точнее его название.
Вы же получаете body, потом анмаршалите в какой-то свой объект, вот у него и проверяйте поля
func createBlog(c echo.Context) error { b := &blog{ ID: seq, } if err := c.Bind(b); err != nil { return err } blogs[b.ID] = b seq++ return c.JSON(http.StatusCreated, b) }
dec := json.NewDecoder(r.Body), от него .Decode() в нужную структуру и в добрый путь
Вот у объекта b можете проверить поля
Мне кажется это не то, что мне нужно.
Вы хотите валидировать правильность имён jeon полей?
Прикрутитe валидатор kin-openapi.
Обсуждают сегодня