определить ответ для REST Api на конечной точке проверки - PullRequest
0 голосов
/ 03 марта 2020

Я изо всех сил пытаюсь найти хороший способ соблюдать принцип REST для конечной точки http:

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

POST ... / myComplexForm / validate- myvalidationCase

Запрос: myComplexForm {field1: int, field2: int. ...}

Ответ: ??????

Как правильно определить этот объект-ответ относительно REST?

Конечная точка может найти в объекте более одной ошибки и должна вернуть все из них, а не только одну (это не поле проверки по полю. Больше a «вам не разрешено иметь больше, чем XXX, если это воскресенье и вы YYYY)

Что должна возвращать конечная точка?

  • список ошибок?
  • Бросить исключение http, содержащее список ошибок?
  • Объект ответа с полем по ошибке? Тогда какой будет http-код?

Спасибо!

1 Ответ

1 голос
/ 03 марта 2020

Если цель конечной точки состоит в том, чтобы получить какой-либо объект и вернуть, был ли объект действительным или нет, то, на мой взгляд, отправка недействительного объекта на самом деле не является ошибкой.

Ошибка должна сообщить клиенту: «Вы должны прекратить делать это» или «Вы должны что-то изменить в своем запросе и повторить попытку», но в этом случае явная цель состоит в том, чтобы также сообщать о недействительных состояниях.

Так что, если бы объект был недействительным, я все равно, вероятно, вернул бы 200 OK. На самом деле у меня нет мнения о том, в каком формате должен быть ваш результат, так как это зависит от цели этой функции. Вы должны вернуть то, что нужно клиенту.

...