[我提到了我在下面看到的来源]
我正在设计一个 API,我一遍又一遍地发现警告会很有帮助,这是 3 个最常见的用例:
- 传达执行 POST 时发生的非关键问题:(例如,忽略不匹配某些验证的数据,并且无论如何都创建了资源)
- 传达发生了副作用:(例如,昨天有效的关联资源现在已过期并被删除 - 但主要资源仍然有效)
- 传达已经执行的操作:(例如,在已经支付的项目上发布支付数据时)
在所有 3 个实例中,对动词的响应都是成功的,相关的响应是归还资源(在情况 1 中创建了资源,在情况 2 中资源仍然存在,在情况 3 中资源现在已支付)
在所有 3 种情况下,我都觉得我应该通知客户,但我找不到这样做的标准方法。
将响应添加为正文的一部分需要我更改资源模型,这是我宁愿避免的
一个不属于模型本身的标准化“_warnings”键是我偏爱的(但我还没有看到它的实现)
理想情况下,我觉得信息应该是标题的一部分,但我发现的唯一类似方法是已弃用的警告标题(见下文)。
我看过的东西:
不是 100% 相关的原因:问题集中在适当的状态代码上,并且天气它应该发出警告,而不是关注资源本身以及将身体放在哪里
标准警告标头: https ://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Warning
不相关的原因Header 具有与之关联的行为(缓存),并且处于更改的边缘(已被弃用)