Предположим, у меня есть контроллер GET / api / product / {id}, где id - это целое число. Каков наилучший способ обработки запросов с нецелыми идентификаторами?
Если /api/product/abcde
является ресурсом без текущего представления, то вам, вероятно, следует вернуть 404 Not Found, с объяснением ошибки в теле сообщения.
Коды состояния - это метаданные, целевая аудитория кода состояния - это компоненты общего назначения, которые понимают «передачу документов по сети». " домен. Здесь вы хотите обратить внимание на написание target-uri, и 404 является подходящим способом сделать это.
410 Gone может быть разумной альтернативой 404.
Код состояния 404 не указывает, является ли это отсутствие представительства временным или постоянным; код состояния 410 (пропал) предпочтительнее, чем код 404, если исходный сервер знает, предположительно, через некоторые настраиваемые средства, что условие может быть постоянным.
Ответ 410 в первую очередь предназначен для оказания помощи веб-задаче. обслуживание путем уведомления получателя о том, что ресурс намеренно недоступен и что владельцы серверов желают удалить удаленные ссылки на этот ресурс. Такое событие является обычным для рекламных услуг ограниченного времени и для ресурсов, принадлежащих лицам, которые больше не связаны с сайтом сервера происхождения. Нет необходимости отмечать все постоянно недоступные ресурсы как «пропавшие» или сохранять отметку в течение любого промежутка времени - это оставлено на усмотрение владельца сервера.
Обратите внимание, что оба 404
и 410
«кэшируются по умолчанию», что, вероятно, то, что вам нужно в этом случае.