带有路径参数的 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?
The 404 (Not Found) status code indicates that the origin server did not find a current representation for the target resource
target resource是 request 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/