Правила проверки запроса REST для модели

Я пишу REST API и WEB сверху. Мне бы очень хотелось, чтобы API предоставлял WEB информацию о проверке и значениях по умолчанию для входных моделей.

Вот вымышленный пример:

{
  "name": "string",   // 1 to 50 characters.
  "gender": "string", // Must be one of 'Male', 'Female', 'Legal Entity'
  "BirthYear": "int"  // [1900, 2019] - Default 1999
  "weight": "decimal" // numeric(10, 2) Precision=10, Scale=2
  "deceased": "bool"  // Default = false.
}

Я знаю, что могу использовать EnumDataType для перечисления перечислений в Swagger, но иногда у меня есть динамические перечисления, основанные на значениях в базе данных. Например, пол может быть динамичным, поскольку люди постоянно идентифицируют себя с новым полом :)

Итак, в REST есть известный шаблон, как передать такую ​​​​информацию клиенту из API, например, через глагол OPTION?

Может ли кто-нибудь указать на хорошую статью или информацию о чем-то подобном?


person Gunnar Valur Gunnarsson    schedule 01.10.2019    source источник
comment
Ниже приведен аналогичный вопрос, он может вам помочь. stackoverflow.com/questions/46816325/   -  person Kasifibs    schedule 01.10.2019
comment
Хорошо, мне это нравится, я посмотрю на это.   -  person Gunnar Valur Gunnarsson    schedule 02.10.2019


Ответы (1)


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

Необязательный метод в соответствии с RFC2616 используется для просмотра того, какой ресурс или сервер поддержка (например, разрешенные методы и заголовки):

Метод HTTP OPTIONS используется для описания параметров связи для целевого ресурса.

person luizinhoab    schedule 01.10.2019
comment
Я проверяю сервер и при необходимости возвращаю 422. Однако использование только этого приводит к плохому UX, и я хотел бы направить пользовательский интерфейс для улучшения UX. Например, сообщите пользовательскому интерфейсу, сколько знаков после запятой должно быть в десятичном разряде и какие значения перечисления доступны. - person Gunnar Valur Gunnarsson; 02.10.2019