在Node.js中使用Swagger自動生成API接口文檔
如何在Node.js項(xiàng)目中使用 Swagger 來自動生成 API接口文檔,使用生成方式有很多種。本文基于
swagger-jsdoc
+swagger-ui-express
快速實(shí)現(xiàn)
1、直接使用swagger-ui-express
// 方便來瀏覽和測試api npm i swagger-ui-express
import { Express } from 'express'; import swaggerUi from 'swagger-ui-express'; const options = { openapi: "3.0.3", info: { title: '文檔相關(guān)接口', version: '1.0.0', description: 'API documentation using Swagger', }, tags: [{ name: "develop", description: "開發(fā)者站點(diǎn)管理接口", }], paths: { "/develop": { "get": { "tags": ["develop"], "description": "獲取文檔列表!", "responses": { "200": { "description":"返回字符串?dāng)?shù)組" } } } } } } const swaggerInstall = (app: Express) => { app.use( '/apidoc', swaggerUi.serve, swaggerUi.setup(options) ); }; export { swaggerInstall };
直接使用配置去生成接口文檔,更改接口的時(shí)候需要同時(shí)去更改配置,會相對麻煩點(diǎn)。這時(shí)候就可以使用swagger-jsdoc
,通過在接口上面注釋信息后,就可以自動更新對應(yīng)的api接口文檔,其本質(zhì)是通過讀取該接口對應(yīng)的注釋,然后再轉(zhuǎn)成對應(yīng)的配置。
2、配合swagger-jsdoc
JSDoc 注釋是一種特殊的注釋語法,用于為 JavaScript 代碼添加文檔化和類型提示信息。它是基于 JSDoc 規(guī)范的一部分,旨在提供一種標(biāo)準(zhǔn)的方式來描述代碼的結(jié)構(gòu)、功能和類型信息
作用:接口文檔注釋有更新,對應(yīng)的api文檔會同步更新。確保接口變更,配置會同時(shí)去更改
npm i swagger-jsdoc
import { Express } from 'express'; import path from 'path'; import swaggerDoc from 'swagger-jsdoc'; import swaggerUi from 'swagger-ui-express'; const swaggerOptions = { swaggerDefinition: { info: { title: '文檔相關(guān)接口', version: '1.0.0', description: 'API documentation using Swagger', }, }, apis: [path.join(__dirname, './routes/*.ts')], // 指定包含 API 路由的文件或文件夾路徑 }; const swaggerInstall = (app: Express) => { app.use( '/apidoc', swaggerUi.serve, swaggerUi.setup(swaggerDoc(swaggerOptions)) ); }; export { swaggerInstall };
//在對應(yīng)的接口,注釋對應(yīng)的文檔 import express from 'express'; import { developGetFile, developGetFileList, } from '../controllers/developControllers'; const router = express.Router(); /** * @openapi * /develop: * get: * tags: [develop] * description: 獲取文檔列表! * responses: * 200: * description: 返回字符串?dāng)?shù)組. */ router.get('/', developGetFileList);
參考
https://github.com/Surnet/swagger-jsdoc
https://github.com/scottie1984/swagger-ui-express
以上就是在Node.js中使用Swagger自動生成API接口文檔的詳細(xì)內(nèi)容,更多關(guān)于Node.js Swagger生成API文檔的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
前端node Session和JWT鑒權(quán)登錄示例詳解
關(guān)于前端鑒權(quán)登錄是比較常見的需求了,本文將從服務(wù)端渲染和前后端分離的不同角度下演示鑒權(quán),為大家介紹前端node Session和JWT鑒權(quán)登錄示例詳解2022-07-07深入解析桶排序算法及Node.js上JavaScript的代碼實(shí)現(xiàn)
桶排序Radix Sort算法利用分治思想將元素分入各桶中排序后匯總,以下我們就來深入解析桶排序算法及Node.js上JavaScript的代碼實(shí)現(xiàn),需要的朋友可以參考下2016-07-07使用nodejs?spider爬取圖片及數(shù)據(jù)實(shí)現(xiàn)
這篇文章主要為大家介紹了使用nodejs?spider爬取圖片及數(shù)據(jù)實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Node.js一行代碼實(shí)現(xiàn)靜態(tài)文件服務(wù)器的方法步驟
這篇文章主要介紹了Node.js一行代碼實(shí)現(xiàn)靜態(tài)文件服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Pycharm配置Node.js運(yùn)行js代碼詳細(xì)過程
在PyCharm中寫JavaScript代碼并進(jìn)行調(diào)試是非常方便的,但是有些用戶可能對如何在PyCharm中準(zhǔn)確地運(yùn)行JavaScript代碼感到困惑,這篇文章主要給大家介紹了關(guān)于Pycharm配置Node.js運(yùn)行js代碼的相關(guān)資料,需要的朋友可以參考下2023-11-11