我的团队正在开发一个简单的后端服务,它提供操作ADD
,GET
和REMOVE
非常简单的项目。所有这些都是由 http 请求触发的,除了从数据库中添加、获取和删除项目外,它们没有太多作用。
关于在数据库中不存在的项目(例如之前被删除)上触发REMOVE
操作的特定场景,我们的问题是服务的响应应该是什么?我们一直在讨论200 + some specific message
、410 - resource gone
等2XX和4XX可能性,但我们还没有达成共识。
我希望这不是自行车棚。
谢谢你的帮助。
服务的响应应该是什么?
请务必强调,状态代码旨在指示服务器尝试理解和满足客户端请求的结果。话虽如此,2xx
状态代码不适合这种情况,应避免:
状态代码的
2xx
(成功)类指示已成功接收、理解和接受客户端的请求。
最合适的状态代码在4xx
范围内:
状态代码的
4xx
(客户端错误)类指示客户端似乎出错。 除非响应HEAD
请求,否则服务器应发送包含错误情况说明的表示,以及它是临时还是永久条件。
404
状态代码似乎是您要查找的内容,因为它指示服务器找不到请求的资源:
6.5.4. 404 未找到
404
(未找到)状态代码表示源服务器未找到目标资源的当前表示形式,或者不愿意披露目标资源存在。404
状态代码不指示这种缺乏表示是暂时的还是永久的;[...]
如果您担心客户端将如何理解404
响应,您可以向他们提供有效负载,说明此类资源不再可用。
请记住,ADD
和REMOVE
不是标准的HTTP方法。希望这是一个错字,并且您正在使用POST
(或PUT
)和DELETE
来表达对您的资源的操作。