# Swagger Swagger 是一間名為SmartBear Software 的公司,開發出的REST API 的工具,可以幫助設計、構建、記錄和使用REST API,後來貢獻給OpenAPI Initiative,並公開讓所有人都能夠使用。 <iframe src="https://excalidraw.com/#json=aAHIg1Ze3vilk-IH-YE1i,NxWQy1Fzdzsv3yhMADQyXw" width="100%" height="600px"></iframe> ## Swagger 簡史 與 OPENAPI Swagger 最早由非營利組織 Wordnik 開發 2011 年 8 月 Swagger 發布 1.0 版本 2014 年 9 月 Swagger 發布 2.0 版本 2015 年 3 月 SmartBear Software 收購 Wordnik 手上的 Swagger API 規範 2015 年 11 月 SmartBear Software 將 Swagger API 規範捐贈給 Linux 基金會 2016 年 Swagger 規範更名為 OpenAPI 規範 (Open API Initiative, OAS) 2017 年 7 月 OpenAPI 發布 3.0.0 版本 2021 年 2 月 OpenAPI 發布 3.1.0 版本 因為先發布 Swagger 2.0,才捐贈給 Linux 基金會,所以雖然 OpenAPI 規範 2.0 等於 Swagger 2.0,但網路上的文章基本上都是寫 Swagger 2.0 而不是 OpenAPI 2.0 OpenAPI 規範是什麼? 應用程式介面(Application Programming Interface, API),是一種讓應用程式與第三方程式或網站進行交互的方式。 而 API 資訊文件該怎麼撰寫呢?這就是 OpenAPI 規範的用途了。依照這個規則,大家就知道 get, post 或是查詢參數要怎麼寫在文件上面 Swagger 工具是什麼? SmartBear Software 公司捐出去的只有「規範」,以粗略的比喻來說就像是 Json 的大括號後面要接小括號,陣列要怎麼呈現出來這樣。 SmartBear Software 公司仍然保有他們開發的各式各樣的「工具」,例如能夠及時預覽的線上編輯器等等。 他們有的各類工具(服務): Swagger UI : 將 OpenAPI 格式的文件以 HTML 的形式顯示,能夠在網頁中直接測試呼叫 API 並回應測試資訊。 Swagger Editor : YAML 格式的線上編輯工具,能夠及時瀏覽文件,以 Swagger UI 的方式呈現。 Swagger Codegen : 從 OpenAPI 文件自動產生成各種語言的 API 實作。 Swagger Parser : 從 OpenAPI 文件建立 Java 實作。 Swagger Core : 用於建立和使用 OpenAPI 定義的 Java 相關類別庫 Swagger Inspector : 在雲端測試 API 的工具。 SwaggerHub : Swagger Editor 的進階版,再加上文件儲存、發布、分享等功能(免費版本只能設定為公開) ...待補充 不過,我們現在常說的 Swagger,其實應該是在說 Swagger 工具,而不是「單純的 Swagger 規範」。 資料來源: https://www.ruyut.com/2022/05/openapi-swagger.html ## 使用 Swagger 來自動產生可互動的 API 文件 @StanShih ## Using the Editor on the Web https://editor.swagger.io/?_ga=2.143193585.535853691.1701315169-19954188.1701315168 多平台都可使用,npm、java、.Net、docker ![image](https://hackmd.io/_uploads/ryjHd3BST.png)