Какой код ответа HTTP-статуса возвращается, если в запросе отсутствует или указан неверный параметр пути (множественный выбор)? - PullRequest
1 голос
/ 19 сентября 2019

REST API с параметром пути: / search / {option}, параметр {option} имеет список возможных значений «A», «B», «C».Используется только метод GET.

Какой присвоенный код состояния выдается, когда параметр {option} передается со значением worng (например, "D")?и если параметр отсутствует?

Если параметр пути отсутствует, конечная конечная точка: / search / Эта служба не существует.

1 Ответ

2 голосов
/ 19 сентября 2019

Какой присвоенный код состояния выдается, когда параметр {option} передается со значением worng (например, "D")?и если параметр отсутствует?

404

Код состояния 404 (не найден) указывает, что исходный сервер не нашел текущийпредставление для целевого ресурса

Целевой ресурс является ресурсом, идентифицированным строкой запроса как запрос-цель.Таким образом, в запросе, который начинается ...

GET /search/D HTTP/1.1

Целевой ресурс - это ресурс, соответствующий идентификатору /search/D.

Поскольку /search/D не является ресурсом в вашем приложении, оно не имеет текущего представления, и поэтому 404 является правильным ответом - это способ, которым мы объявляем клиенту (и промежуточномукомпоненты), что произошла орфографическая ошибка в запросе-цели.

Тот факт, что ваша реализация направляет запросы к /search/D той же функции, которая обрабатывает /search/A, /search/B и /search/C,случайность вашей реализации и не должна учитываться при разработке вашего ответа.

Тот же аргумент справедлив для

GET /search/ HTTP/1.1
GET /search HTTP/1.1

Вы, как часть тела ответа, можете отправитьсообщение, описывающее некоторые очевидные альтернативные варианты написания:

HTTP/1.1 404 Not Found

Did you mean?

/search/A
/search/B
/search/C

404 по умолчанию кешируются ответы - универсальные клиенты могут сохранять возвращаемое представление для последующего использования без необходимости интерпретировать полезную нагрузку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...