我有一个端点
DELETE /events/<id>
在新版本的 API 中,我们将删除此 API。
现在,如果客户端请求相同的 URL,我应该输出什么状态代码?
我找到了一些选择。
-
410 Gone
。这是最接近的一个。但这与资源有关。 这与管理 API 无关。我认为这意味着,如果GET /events/1
有效,那么声明/events/1
就没有意义了是Gone
-
301 Moved Permanently
和302 Found
。它们用于重定向。但替换的不是GET
打电话 -
405 Method Not Allowed
。这是有意义的方法DELETE
现在不再允许了。但它并没有说过去是允许的(不确定我们是否需要它)
此端点支持的其他 http 方法是,
GET /events/<id>/
POST /events/
POST /events/<id>/actions/
只是为了澄清。当我搜索该主题时,我获得了有关资源的更多信息。但在这里我担心 API 的折旧和删除。这更多的是一种管理。
最佳答案
你这里有些事情被扭曲了。
DELETE
是动词,表示方法,而不是端点。
/events
这是您的端点。
对于已删除的资源,MDN 建议 410 Gone
。通用 http 上下文中的资源可以是任何内容。
The HyperText Transfer Protocol (HTTP) 410 Gone client error response code indicates that access to the target resource is no longer available at the origin server and that this condition is likely to be permanent.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410
如果您想显示某个方法已被删除,但端点仍然存在,您可能会使用405 Method not allowed
。
您还应该考虑对 API 进行版本控制。
关于rest - 如何指示 REST API 端点已删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53151738/