Будет ли 404 приемлемым для метода DELETE, вызываемого по несуществующему URL?
Я довольно новичок в мире RESTful, и в данный момент я спорю, стоит ли при вызове метода удаления для URL, который не существует, 404 Resource Not Found
должен быть возвращен. На данный момент код возвращает 200 OK
код, но это не сообщает пользователю, что то, что он хотел сделать, было невозможно.
Я посмотрел в Интернете и здесь, и многие люди разделили мнения по этому вопросу, так как HTTP не имеет стандартов для кодов возврата.
(Я думаю, что в сценарии, когда кто-то хочет что-то удалить, но с помощью опечатки, удаляет недопустимый ресурс, но при этом не возвращается код ошибки, он не информируется о том, что удаление было неудачным, и не осознает ошибка.)
1 ответ
Я бы вернул 404 и позволил разработчику переднего плана решить, как справиться с ситуацией. Как разработчик внешнего интерфейса, если мой пользователь попытался удалить несуществующий ресурс, я бы хотел разрешить эту ситуацию. Может случиться так, что ресурс был удален другим пользователем между временем, когда я нашел ресурс и настоящее. С другой стороны, это может быть опечатка, как вы сказали.
Но независимо от того, я хотел бы знать, пытается ли пользователь удалить ресурс, который больше не существует, чтобы я мог обработать ситуацию соответствующим образом.
Но эта ситуация зависит от типа приложения, которое вы создаете. Например, вы можете захотеть вернуть 410 в случае, если другой пользователь удалил ресурс за последние 5 минут, а затем вернуть 404 для всех несуществующих URL-адресов. Но еще раз, я бы ожидал, что 200 будет возвращено, если что-то было действительно удалено.
SharePoint REST следует этому шаблону.