HTTP状态代码必须为字符串吗?

时间:2018-11-14 08:42:14

标签: openapi

Responses对象包含一个{HTTP Status CodeResponse}映射。

在我发现的所有示例中,状态代码均以字符串形式提供:

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

我找不到将其作为字符串的要求,我尝试过的验证程序接受了整数。

我发现的只有a PR changing from integer to string in all YAML examples

我应该只使用字符串吗?

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

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

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

1 个答案:

答案 0 :(得分:0)

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

  

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

     
    

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

  
     

这会导致键始终是字符串类型。

这实际上不是规范,而是JSON格式的要求。