重命名
swagger: 2.0
openAPI: 3.0.0
Swagger 2.0 基礎URL結構
OpenAPI 3.0 基礎URL結構
我們可以定義壹個基礎url,通過{}裏面裝載變量值(類似於路徑模版),在使用時,通過variables屬性可以定義變量值,當然也可以給定默認值
Swagger 2中的definitions概念在OpenAPI 3中標準化為組件,可以在多個地方重復使用且可定義,組件列表如下:
Swagger 2
Swagger 2最容易混淆的方面之壹是body / formData。它們是參數的子集,只能有壹個或另壹個,如果妳使用body,格式與參數的其余部分不同(只能使用body參數,名稱不相關,格式不同,等等)
OpenAPI 3
現在,body已經被移入了它自己的叫做requestBody的部分,並且formData也已經被合並到裏面。另外,cookies已經被添加為參數類型(除了現有的標題,路徑和查詢選項之外)。
requestBody有很多新的功能。現在可以提供example(或數組examples)for requestBody。這是非常靈活的(妳可以傳入壹個完整的例子,壹個參考,甚至是壹個URL的例子)。
新的requestBody支持不同的媒體類型(content是壹個MIME_Types的數組,像application/json或者text/plain,當然妳也可以用 / 捕捉所有)。
對於參數,妳有兩個選擇妳想如何定義它們。妳可以定義壹個“模式”(像原來2.0那樣),可以盡情地描述項目。如果更復雜,可以使用“requestBody”中的“content”。
通配符的出現,我們可以以“4XX”來定義響應,而不必單獨定義每個響應碼。
響應和響應頭可以更復雜。可以使用“content”對象(如在請求中)的有效載荷。
鏈接是OpenAPI 3最有趣的補充之壹。它有點復雜,但可能非常強大。這基本上是描述“下壹步是什麽”的壹種方式。
比方說,妳得到壹個用戶,它有壹個addressId。這addressId本身是無用的。您可以使用鏈接來展示如何“擴大”,並獲得完整的地址。
在“/ users / {userId}”的響應中,我們找回了壹個addressId。“鏈接”描述了如何通過引用“$ response.body#/ addressId”來獲取地址。
另壹個用例是分頁。如果要獲取100個結果,links可以顯示如何獲得結果101-200。它是靈活的,這意味著它可以處理任何分頁方案limits來cursors。
Swagger 2
OpeanAPI 3
壹堆安全性的變化!它已被重命名,OAuth2流名已更新,您可以有多個流,並且支持OpenID Connect。“基本”類型已被重命名為“/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#oasDocument
/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#componentsObject