【问题标题】:Must HTTP Status Codes be strings?HTTP 状态码必须是字符串吗?
【发布时间】:2018-11-14 08:42:14
【问题描述】:

Responses 对象包含一个 {HTTP Status Code:Response} 映射。

在我找到的所有示例中,状态码都是作为字符串提供的:

{"200": {"description": "a pet to be returned"}}

我找不到任何要求它是字符串并且我尝试过的验证器接受整数。

我找到的都是a PR changing from integer to string in all YAML examples

我应该只使用字符串吗?

编辑:在 JSON 中,只有字符串才是有效的键。所以这个问题可以改写为“以下两个假设中哪一个是正确的”?

  • OpenAPI 没有指定 HTTP 状态代码应该是字符串,因为这是隐式的(JSON 格式)。但是,验证和显示工具对这一要求的要求不高。

  • OpenAPI 使用某种“JSON 超集”,其中整数键被认为是有效的。

【问题讨论】:

  • 从技术上讲,对于 JSON,唯一有效的键(在对象键值对中)是字符串。 json.org
  • 感谢@Oram。我编辑了问题。

标签: openapi


【解决方案1】:

来自this GH issue,键必须是字符串:

OpenAPI 可以用 JSON 或 YAML 规范地表示,正如您在 JSON 中所说的,只有字符串可以作为键。关于 YAML:

此字段必须用引号引起来(例如,“200”),以实现 JSON 和 YAML 之间的兼容性。

这具有键始终是字符串类型的效果。

这并不是真正的规范,而是 JSON 格式的要求。

【讨论】:

    猜你喜欢
    • 2018-09-30
    • 2012-10-09
    • 1970-01-01
    • 2019-03-09
    • 2014-05-11
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多