2017-10-28 194 views
1

看来,JSON包含路径信息和http请求动词,而YAML似乎仅仅定义了一个树结构。Swagger中JSON和YAML的用法有什么不同?

他们有什么区别?还是我在这里混合了不同的概念/层次结构?新手招摇,刚开始学习。

如果YAML是JSON的超集,那么超集在这里添加的具体是什么 - 它是URL路径和HTTP动词?增加一个example也是YAML为Swagger增加JSON的东西吗?

回答

1

按照OpenAPI Specification

符合该规格的OpenAPI本身是一个JSON对象,其可以在任一或JSON YAML格式来表示一个OpenAPI的文档。

所以功能方面,使用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不使用它们。

相关问题