似乎JSON包含路径信息和http请求动词,而YAML似乎仅定义一个树结构。
它们之间有什么区别?还是我在这里混淆了不同的概念/层次结构?新手大张旗鼓,刚刚开始学习。
如果YAML是JSON的超集,那么该超集具体要添加到这里-是URL路径和HTTP动词吗?是否example
还添加了YAML为Swagger添加到JSON的内容?
根据OpenAPI规范,
符合OpenAPI规范的OpenAPI文档本身就是JSON对象,可以用JSON或YAML格式表示。
因此,就功能而言,使用JSON或YAML之间没有区别。YAML作为JSON的超集在这里添加的只是一种不同的语法。使用规范中的示例,这两个文档是相同的:
{
"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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
和
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
Run Code Online (Sandbox Code Playgroud)
第一个文档是有效的JSON和有效的YAML(因为YAML是JSON的超集)。第二份文件是有效的YAML,其结构与第一份文件相同。
因此,要回答有关YAML超集在此处添加的问题:它添加了用于指定相同结构的不同语法。而已。
YAML确实包含一些无法映射到JSON的功能,但是在这里它们无关紧要,因为Swagger / OpenAPI不使用它们。