405 Метод не разрешен для удаления - PullRequest
0 голосов
/ 28 мая 2019

Я получаю «Метод 405 не разрешен», когда я пытаюсь УДАЛИТЬ без передачи идентификатора ресурса, который необходимо удалить. Вот мой URL

http://localhost:8080/api/vendors/delete/1234/

где в идеале мне следовало бы указать идентификатор в конце URL-адреса, например:

http://localhost:8080/api/vendors/delete/1234/{id}

Я убежден, что это должен быть 405, но моя команда QA думает иначе. Говорят, что это должно быть 400. Может кто-нибудь указать мне любой ресурс, который четко определяет, какой HTTP-код должен быть для этого сценария.

Ответы [ 2 ]

1 голос
/ 28 мая 2019
  1. Для вашего основного вопроса, если метод равен DELETE и путь /api/vendors/delete/1234/ действителен для других методов, но не для DELETE, тогда 405 Method Not Allowed ("Запрос метод не поддерживается для запрошенного ресурса ") является правильным, так как на этом пути есть" ресурс ", который не поддерживает удаление, например он может поддерживать GET для получения списка поставщиков.

    Если там нет ресурса, то есть метод не имеет значения, тогда 404 Not Found («Запрошенный ресурс не найден») будет правильным ответом.

  2. Если метод DELETE, а не GET, PUT, POST или любой другой, вам не нужно указывать .../delete/... в пути.

  3. Если вы пытаетесь удалить Vendor 1234, тогда путь должен быть http://localhost:8080/api/vendor/1234, а метод должен быть DELETE. Обработчик действия должен использовать /api/vendor/{id} в объявлении.

0 голосов
/ 28 мая 2019

По моему мнению, 404 Not Found или 400 Bad Request - хороший вариант. Пожалуйста, обратитесь к этому ответу, а также Коды состояния HTTP

...