REST GET的HTTP响应代码-未找到子资源(但未被标识符引用)
我正在构建一个RESTAPI,但在返回GET操作的响应代码时遇到了一个难题。 我在网上找到了很多例子和答案,但不是针对我的特定场景。 以下是我迄今为止所发现和理解的:REST GET的HTTP响应代码-未找到子资源(但未被标识符引用),rest,http,null,response,Rest,Http,Null,Response,我正在构建一个RESTAPI,但在返回GET操作的响应代码时遇到了一个难题。 我在网上找到了很多例子和答案,但不是针对我的特定场景。 以下是我迄今为止所发现和理解的: 如果返回一个空列表(比如/library/authors/{authord}/books),一个响应代码为200的空列表就足够了 如果请求具有id的特定资源(例如/library/authors/{authorId}/books/{bookId}),响应将为空,并带有404 这总结了我的大多数用例,我对此很满意 但是,如果我在没有
- 204(空内容)
- 404(资源不存在)
提前谢谢你 处理语义
GET /library/authors/1/auto-biography
/library/authors/1/auto-biography
是一个标识符。它本身就是一些概念,比如“作者1的自传”;请注意,我们可以讨论资源,即使它实际上可能还不存在
资源可以映射到空集合,空集合允许在概念的任何实现存在之前引用该概念
出现在HTTP响应主体中的不是资源,而是资源的表示
现在看看状态码
404(未找到)状态代码表示源服务器未找到目标资源的当前表示形式,或者不愿意透露存在该表示形式
204(无内容)状态代码表示服务器已成功完成请求,并且响应有效负载正文中没有要发送的其他内容
一个松散的类比:假设您试图获取一个文件的内容404
在语义上与FileNotFound对齐204
表示文件长度为零字节
404
通常会伴随“一个包含错误情况解释的陈述,以及它是暂时的还是永久的情况。”它表示客户端试图使用一个不应该可用的链接
另一方面,204
没有任何内容——表示长度为零字节,怎么可能有数据。这是200
响应的一个特例,通知客户机(和中间组件)响应正文故意留空