Каким должно быть поведение валидации API, если мы передаем дополнительную / ненужную пару ключ-значение в полезную нагрузку API? - PullRequest
0 голосов
/ 23 мая 2019

Предположим, что Api ожидает две пары ключ-значение в полезной нагрузке. Я знаю, что мы можем проверить эти две пары, используя экспресс-валидатор или любой другой. Но что, если я передам третью пару ключ-значение. Должен ли API возвращать ошибку что-то вроде превышенных объектов?

1 Ответ

0 голосов
/ 23 мая 2019

Это решение действительно зависит от вас, когда вы определяете свой API.

В стандартном API REST данные, предоставленные вне требований ожидаемой полезной нагрузки, должны возвращать ошибку. Обычно вы возвращаете 400 Bad Request, чтобы указать, что предоставленная полезная нагрузка не соответствует ожиданиям. Один из способов убедиться в этом - использовать инструмент проверки данных, такой как Joi , для проверки правильности входящей полезной нагрузки.

Некоторые, как и я, считают коды состояния HTTP специфичными для базового протокола связи, а не для внутреннего формата запроса. В этом представлении все успешно полученные запросы возвращают 200 с чем-то вроде {ok:bool, message: string}, так что в случае успешной операции результат будет

{ok: true, message: "success"}

, а в случае ошибки

{ok: false, message: "incomplete payload"}.

Если ваш конкретный вариант использования требует более слабой проверки (возможно, в случае, когда вы не контролируете входящую полезную нагрузку), вы можете проверить только те поля, которые вам требуются, и беззвучно игнорировать любые посторонние данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...