2017-10-28 195 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不使用它們。

相關問題