Как указать, что конечная точка API REST удалена - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть конечная точка

DELETE /events/<id>

В новой версии API мы собираемся удалить этот API .

Теперь, если клиент запрашивает тот же URL, какой код статуса я должен вывести ?

Я нашел несколько вариантов.

  1. 410 Gone. Это самый близкий. Но это относится к ресурсам. Речь идет не об управлении API . Я думаю, это означает, что если GET /events/1 работает, то не имеет смысла утверждать, что /events/1 - это Gone
  2. 301 Moved Permanently и 302 Found. Они для перенаправления. Но замена не GET вызов
  3. 405 Method Not Allowed. Это имеет смысл, поскольку метод DELETE теперь разрешен. Но это не говорит, что раньше разрешалось (не уверен, что нам это нужно)

Другие методы http, поддерживаемые в этой конечной точке:

GET /events/<id>/
POST /events/
POST /events/<id>/actions/

Просто чтобы уточнить. Когда я гуглю тему, я получаю больше информации о ресурсах. Но здесь я обеспокоен обесцениванием и удалением API. Это скорее управление.

1 Ответ

0 голосов
/ 05 ноября 2018

У тебя здесь кое-что искажено.

DELETE - глагол, обозначающий метод , а не конечную точку.

/events это ваша конечная точка.

MDN предлагает 410 Gone для ресурсов, которые были удалены. Ресурс в общем контексте http может быть любым.

Протокол передачи гипертекста (HTTP) 410 Отказ клиента от ответа код указывает, что доступ к целевому ресурсу больше не доступны на исходном сервере и что это условие может быть постоянная.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410

Если вы хотите показать, что метод был удален, но конечная точка все еще там, вы, вероятно, будете использовать 405 Method not allowed.

Вам также следует рассмотреть возможность создания версий API.

...