rest - HTTP 标头后面的命名约定
问题描述
我正在构建一个 API,我需要在消息通过我的系统时对其进行跟踪。为此,我打算使用 X-Correlation-Id HTTP 标头,但在这里我遇到了问题。
首先,不推荐使用 X- 前缀并且不鼓励使用它。那会给我留下Correlation-Id。
其次,我打算使用连字符,但是当我阅读https://www.rfc-editor.org/rfc/rfc7230时,我意识到连字符在任何地方都没有明确命名。第 3.2.6 节提到排除的字符 - 这些字符不能用于 http 标头分隔符?
第三,由于 HTTP 标头不区分大小写,我应该将所有预期的标头定义为小写吗?我问是因为我做的研究越多,我发现的变化就越多。有些 API 具有大写的标头,有些则没有。有些使用连字符,有些使用下划线。
这些东西有明确的指导方针吗?我告诉我的老板,对 HTTP 标头使用驼峰式不是最佳选择,但我找不到任何指导方针。
解决方案
只要使用是私有的,字段名称并不重要。如有疑问,请使用“应用程序名称”而不是“X”。
字段名称使用“token” ABNF,其中包含“-”。
由于它们不区分大小写,因此您如何“定义”它们并不重要。如有疑问,请使用与 HTTP 规范相同的约定。CamelCase 尤其没有帮助,因为 HTTP/2(和 3)将网络上的所有内容都小写。
推荐阅读
- spring - Kafka集群故障转移导致客户端消费者心跳线程关闭spring应用上下文
- reactjs - Material-UI 列表并排 React
- android - 添加 play-services-nearby 库后出现“资源重复值”错误
- html - 背景颜色未填满 CSS Grid 中的行
- python - 如何确保 Python 中的 def 只使用给定列表中的显式字符?
- android-intent - 您如何延迟对话流中的后续意图?
- windows-10 - 即使在单独的计算机上,端口转发也无法在 Virtual Box v6.1 上运行
- java - 弹性4j - 请求超时
- apache-spark - 在使用 pyspark 连接两个数据框时合并相似的列名
- python-3.x - 条件索引 numpy 浮点数组