swagger
簡介
swagger有三個服務,editor,codegen,swagger ui
以下範例為Open API 2.0 現在最新為Open API 3.0
1.
其中editor有提供線上的editor或是本機host
線上的缺點在於無法給別人用
本機缺點在於每個人連上後都能修改,且看不到html版的ui
#解決方法
上面為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子項目會後退空兩格,陣列使用
-表示
可以看到範例,接著我們把它清空,開始編寫自己的版本
最基本的型態
其中最上面指的是使用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重新開啟才會更新
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?