Я использую Beego Framework для создания веб-приложения на Go. Я должен проверить входящий JSON в запросе API.
Я могу разархивировать JSON в структуру, которая прекрасно работает, но я также хочу проверить данные. Например, если тип не совпадает с типом в структуре json.Unmarshal, то при первом появлении будет возвращена ошибка. Я хочу проверить и получить все ошибки сразу для JSON.
Я пробовал https://github.com/thedevsaddam/govalidator
, но пакету нужна ссылка на объект запроса, который недоступен в контроллере Beego. Существуют и другие валидаторы, которые могут проверять структуру, но я также хочу проверить json.
EDIT:
Ссылка на объект запроса в beego может быть найдена из объекта контекста контроллера как:
func (this *MainController) Post() {
fmt.Println(this.Ctx.Request)
}
Но проблема остается той же самой с json unmarshal. Если в типе есть небольшое несоответствие, json.unmarshal немедленно запаникует. Я также хочу иметь возможность проверить тип.