Где в дереве решений Liberator я должен проверить ввод формы?Как подтвердить форму POST-данных с помощью Liberator?
:malformed?
, похоже, предназначен для обнаружения недействительных JSON или недействительных тел формы.
Где в дереве решений Liberator я должен проверить ввод формы?Как подтвердить форму POST-данных с помощью Liberator?
:malformed?
, похоже, предназначен для обнаружения недействительных JSON или недействительных тел формы.
Это немного зависит от того, какую проверку вы имеете в виду, ср. это обсуждение здесь на SO о том, следует ли использовать HTTP 400 (bad request) for logical error для сигнализации логических ошибок. освободитель предоставляет множество точек принятия решений, связанных с вещами от request-entity-too-large
до проверок на правильный медиа-тип. Я бы предложил посмотреть страницу wikipedia на странице HTTP status codes, чтобы получить представление о том, какой код возврата может быть наиболее подходящим для вашей проверки, а затем использовать это, чтобы указать ваше предложение, которое имеет решающее значение для освободителя.
РЕДАКТИРОВАТЬ: Предположим, вы хотите вернуть 422. Вы можете использовать processable?
для запуска проверки, в которой обработчик unprocessable-entity
возвращает 422, если проверка не удалась. Или вы можете использовать liberator.representation/ring-response
, чтобы создать весь ответ от вашего обработчика или действия. См. Также обсуждение в liberator google group.
Я думаю, что использовать ручку неправильно, но вы также можете использовать, дескать, обрабатываемую-обрабатываемую сущность. Что, вероятно, более важно, так это быть последовательным. Я бы посмотрел на него со стороны клиента и решил, что будет иметь больше смысла и который обеспечивает правильный уровень детализации или обратной связи для клиента. Например, если важно, чтобы клиент получал достаточную обратную связь, чтобы различать отсутствующие параметры и параметры, которые были предоставлены, но имеют неприемлемые значения, тогда вам может понадобиться использовать обработанный вручную для первого и обработанный-непроизводимый объект для второго , Если, с другой стороны, вам просто нужно сообщить, что возникла проблема с предоставленными (или не предоставленными) параметрами, тогда только правильный способ обработки может быть правильным выбором, так как это уменьшит размер вашего кода и упростит логику, необходимую на сторона клиента.
Я бы хотел начать с того, что просто использовал обработанный handle-malformed, а затем разбил его на обработанный обработкой и обработанный обработкой-необработанный объект, когда обнаружил, что существует необходимость различать два типа сбоев.
Итак, какое решение Освободителя вы использовали бы, скажем, для недостающих входов? –
Возможно, код 400 (-> ': malformed') или код 422, который вы бы вернули из кода': post! '. – schaueho
Как мне вернуть 422 из моего кода: post!? –