rest - 可以将语义信息放入 REST API 的 HTTP 原因短语中吗?

标签 rest http api-design

例如,我可能想通过对版本化资源的 HEAD 请求的 409 响应返回资源的当前序列号,但我可能不会在响应实体中提供它,因为 HEAD 不允许任何。另一个示例:假设由于版本冲突,对提交端点的 POST 请求失败。我可以用 409 响应,但有时我可能想额外通知客户端它正在提交的事务已超过最大重试次数,进一步尝试将不会成功。我可能会回来HTTP/1.1 409 Conflict/final 而不是 HTTP/1.1 409 Conflict 在这种情况下。我的问题是,这是可以接受的做法吗? HTTP 1.1 RFC 没有为这个问题提供明确的答案。

我知道我可以将此类信息放在 X-... HTTP header 中,或者以某种方式(附加 XML 标记或 JSON 属性等)将此信息包含在响应实体中。假设我如果可以的话,我不能或不想这样做。

最佳答案

原因短语很适合调试;但仅此而已。它在 HTTP/2 中消失了,可能会被中介和/或软件库丢失;不要依赖它的保存。

关于rest - 可以将语义信息放入 REST API 的 HTTP 原因短语中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26732098/

相关文章:

PHP rest api如何返回文件或下载

rest - API设计: Caching “partial” nested objects

api-design - 我应该如何构建良好的(网络)API

api - 如何处理 RESTful API 中的敏感属性(例如密码、信用卡等)

rest - Go REST Api 中的角色和权限

javascript - 使用 node-rest-client 中间件无法在 Node js 中获得正确的响应

html - 我可以使用 Sinatra 的 POST 请求来模拟 PUT 或 DELETE 请求吗?

http - 为什么在基本身份验证中使用 Base64

perl - 我可以在 WWW::Mechanize 的 POST 中将空格编码为 %20 吗?

php - 使用 goutte 进行同步 HTTP 请求