Различие между отсутствием результатов и отсутствием службы в веб-службе Restful

Если у меня есть служба, работающая с шаблоном URL, подобным приведенному ниже.

HOST/animals/{id}

Если выполнить GET для этого URL-адреса с несуществующим идентификатором для большинства реализаций Rest, я ожидаю получить ответ 404 Not Found.

Если я сделаю запрос GET для (обратите внимание на опечатку!):

HOST/animels/{id}

С действительным идентификатором я также получу ответ 404 в большинстве реализаций Rest.

Очевидно, что я могу различить сценарии, заглянув в тело ответа, но это будет нестандартное поведение для моего API.

Есть ли стандартный подход к этому?

Может быть, метод возврата не разрешен/неверный запрос для несопоставленных URL-адресов (хотя это было бы большим изменением ожидаемого поведения)?

Или нам нужно 2 кода состояния для Not Found?

Сценарий для чего-то подобного является опечаткой в ​​некоторой документации/реализации клиента.


person Pablojim    schedule 27.11.2013    source источник
comment


Ответы (1)


Если вы рассматриваете весь URL-адрес как идентификатор, указывающий на ресурс, эти два случая одинаковы.

  • Вариант 1: '/animals/{bad-id}' указывает на ресурс, который не найден.
  • Случай 2: '/animels/{id}' указывает на ресурс, который не найден.

Таким образом, оба случая следует рассматривать так же, как «НЕ Найдено».

person Ming Chan    schedule 27.11.2013