swagger

簡介

swagger有三個服務,editor,codegen,swagger ui

以下範例為Open API 2.0 現在最新為Open API 3.0

1.

其中editor有提供線上的editor或是本機host

http://editor.swagger.io/\#/

線上的缺點在於無法給別人用

本機缺點在於每個人連上後都能修改,且看不到html版的ui

#解決方法

https://app.swaggerhub.com

上面為swagger得付費服務,也就是可以產生swagger ui 也可codegen也可編輯,加入團隊成員等,且每個人都能看,但只有團隊成員能改

2.如果想自己host swagger ui

參考如下網址即可

https://scotch.io/tutorials/document-your-already-existing-apis-with-swagger

讀取不同的swagger json 只要加上 ?url 即可

https://swagger.io/docs/open-source-tools/swagger-ui/usage/installation/

3.使用swagger editor 並開啟localhost cors

因沒開啟的話,位於遠端網頁的 swagger editor 無法發送測試

將上面這段加到code的最上面即可

#工作流程

1.一般會使用如上方式寫nodejs api然後寫swagger editor的規格文件yaml然後貼到你自己host的swagger ui的yaml上

要接api的人即可去你的host網址看

2.或是使用swaggerhub直接線上編輯並可產生只可看的swagger ui

#開始編寫yaml語言

yaml子項目會後退空兩格,陣列使用-表示

先到http://editor.swagger.io/#/

可以看到範例,接著我們把它清空,開始編寫自己的版本

最基本的型態

其中最上面指的是使用swagger的版本,目前固定是2.0.0

中間部分等於是指定API server的位置,意思為http:localhost:3000/

再來我們會開始往paths裡面寫api

#寫paths的步驟

1.路徑 /test

2.動詞 get,post...

3.四劍客 summary description parameters responses

4.在parameters下寫參數

5.在responses下寫response code 200,304...

6.每個response code下有回傳的東西

基本上我們寫這樣就夠了

GET 簡單範本

在express中使用req.params取得url中使http://localhost:3000/getUser/123

使用req.query取得http://localhost:3000/getUser?id=123

GET 方法的完整範例

server.js

yaml

Post

你可能看過$ref: '#/definitions/test1',之後把test1另外定義,但個人感覺此種寫法比較分散,於是此處不用此種寫法

注意:修改yaml後記得把Try this operation重新開啟才會更新

先定義post type

或是

路由

server.js

最後加上PUT與DELETE方法

server.js

yaml

response code 如果沒寫就看不到response

Request 參數

Schema 型別

https://swagger.io/docs/specification/data-models/data-types/#array

切分區域

用tags,即可將其加入子項目

Last updated

Was this helpful?