rest - 如果请求丢失或错误值(多选)路径参数,返回什么 HTTP 状态响应代码?

标签 rest api http

带有路径参数的 REST API:/search/{option} , {option} 参数具有可能值“A”、“B”、“C”的列表。仅使用GET方法。

当 {option} 参数传递带有磨损值(例如“D”)时,给出的适当状态代码是什么?如果缺少参数?

如果路径参数缺少最终端点:/search/该服务不存在。

最佳答案

What is the appropriated status code to give when {option} parameter is passed with worng value( for example "D")? and if the parameter is missing?

404

The 404 (Not Found) status code indicates that the origin server did not find a current representation for the target resource

target resourcerequest line 标识的资源作为请求目标。因此,在开始的请求中...

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 响应默认情况下是可缓存的 - 通用客户端可以存储返回的表示形式以供以后使用,而无需解释有效负载。

关于rest - 如果请求丢失或错误值(多选)路径参数,返回什么 HTTP 状态响应代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58013198/

相关文章:

api - 如何从 ID 创建 Foursquare 个人资料网址?

javascript - Spotify:如何防止它记住听过超过一首歌曲?

c# - 使用 POST 请求向 Jira API 发送 JSON 时出现 System.Net.WebException

java - 发帖请求抛出 nullpointerexception

java - 折线颜色不变

c - http get请求与c中的https请求有何不同?

api - 是否制作以 API 为中心的应用程序? - Laravel

java - Hibernate:通过添加角色外键进行用户注册的 POST 请求

rest - 空列表的 HTTP 200 或 404?

jquery - 来自 REST API 的自动完成