Я пытаюсь понять шаблоны для проверки JSON тела.
Например,
// I have this struct
type Program struct {
ProgramKey string `json:"program_key" validate:"required"`
Active *bool `json:"active" validate:"required"`
}
// json request body
{
"program_key" : "example-key",
"active" : false
}
Я хочу запустить проверку моего запроса до того, как ошибка декодирования JSON исчезнет. Но не уверен, что это лучший способ сделать это.
Потому что всякий раз, когда я делаю декодирование,
// json request body
{
"program_key" : "example-key",
"active" : "false" // notice the string value here
}
json.NewDecoder(r.Body).Decode(&program);
Декодирование завершается неудачно, если потребитель отправляет строку false. Поскольку декодер JSON не может декодировать и назначить запрос. Я не против использовать это в качестве первого уровня обработки ошибок / проверки. Но, учитывая, я могу настроить сообщение об ошибке. Я не хочу раскрывать основные детали API для потребителя.
Я не могу найти хорошие узоры вокруг этой области.