Как проверить данные формы POST с помощью Liberator?

Где в дереве решений Освободителя я должен проверять входные данные формы?

:malformed? похоже, нацелен на обнаружение недействительных JSON или недействительных тел форм.

2 ответа

Это немного зависит от того, какую проверку вы имеете в виду, ср. это обсуждение здесь о том, следует ли использовать HTTP 400 (неверный запрос) для логической ошибки, чтобы также сигнализировать о логических ошибках. освободитель предоставляет множество точек принятия решений, которые связаны с вещами, начиная от request-entity-too-large проверяет правильность медиа-типа. Я бы посоветовал взглянуть на страницу википедии о кодах состояния HTTP, чтобы понять, какой код возврата может быть наиболее подходящим для вашей проверки, а затем использовать его, чтобы высказать предположение о том, какая точка принятия решения об освобождении важна.

РЕДАКТИРОВАТЬ: Давайте предположим, что вы хотите вернуть 422. Вы могли бы использовать processable? чтобы запустить проверку, чей обработчик unprocessable-entity возвращает 422, если проверка не пройдена. Или вы могли бы использовать liberator.representation/ring-response создать полный ответ от вашего обработчика или действия. Смотрите также обсуждение в группе освободителя Google.

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

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

Другие вопросы по тегам