似乎JSON包含路径信息和http请求动词,而YAML似乎只是单独定义树结构。
他们之间有什么区别?或者我在这里混合不同的概念/等级?刚刚开始学习的新手。
如果YAML是JSON的超集,那么这里添加的超集具体是什么 - 它是URL路径和HTTP动词吗?添加example
也是YAML为Swagger添加到JSON的东西吗?
答案 0 :(得分:5)
符合OpenAPI规范的OpenAPI文档本身就是一个JSON对象,可以用JSON或YAML格式表示。
因此,在功能方面,使用JSON或YAML没有区别。作为JSON超集的YAML在这里添加的只是一种不同的语法。使用规范中的示例,这两个文档是相同的:
{
"servers": [
{
"url": "https://development.gigantic-server.com/v1",
"description": "Development server"
},
{
"url": "https://staging.gigantic-server.com/v1",
"description": "Staging server"
},
{
"url": "https://api.gigantic-server.com/v1",
"description": "Production server"
}
]
}
和
servers:
- url: https://development.gigantic-server.com/v1
description: Development server
- url: https://staging.gigantic-server.com/v1
description: Staging server
- url: https://api.gigantic-server.com/v1
description: Production server
第一个文档是有效的JSON和有效的YAML(因为YAML是JSON的超集)。第二个文档是有效的YAML,在结构上与第一个文档相同。
所以回答关于YAML超集在这里添加什么的问题:它为指定相同的结构添加了不同的语法。没什么。
YAML确实包含一些不能映射到JSON的功能,但它们与此无关,因为Swagger / OpenAPI不使用它们。
答案 1 :(得分:5)
JSON不支持注释,而YAML则支持!
答案 2 :(得分:0)
如果从另一个角度来看,YAML比JSON更整洁,更易于读写。