2014-09-16 1 views

ответ

0

Это немного зависит от того, какую проверку вы имеете в виду, ср. это обсуждение здесь на 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.

+0

Итак, какое решение Освободителя вы использовали бы, скажем, для недостающих входов? –

+0

Возможно, код 400 (-> ': malformed') или код 422, который вы бы вернули из кода': post! '. – schaueho

+0

Как мне вернуть 422 из моего кода: post!? –

0

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

Я бы хотел начать с того, что просто использовал обработанный handle-malformed, а затем разбил его на обработанный обработкой и обработанный обработкой-необработанный объект, когда обнаружил, что существует необходимость различать два типа сбоев.