Node.js自動(dòng)生成API文檔的實(shí)現(xiàn)
如何在Node.js項(xiàng)目中使用 Swagger 來(lái)自動(dòng)生成 API接口文檔,使用生成方式有很多種。本文基于swagger-jsdoc
+swagger-ui-express
快速實(shí)現(xiàn)
1、直接使用swagger-ui-express
// 方便來(lái)瀏覽和測(cè)試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: "開(kāi)發(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í)去更改配置,會(huì)相對(duì)麻煩點(diǎn)。這時(shí)候就可以使用swagger-jsdoc
,通過(guò)在接口上面注釋信息后,就可以自動(dòng)更新對(duì)應(yīng)的api接口文檔,其本質(zhì)是通過(guò)讀取該接口對(duì)應(yīng)的注釋?zhuān)缓笤俎D(zhuǎn)成對(duì)應(yīng)的配置。
2、配合swagger-jsdoc
JSDoc 注釋是一種特殊的注釋語(yǔ)法,用于為 JavaScript 代碼添加文檔化和類(lèi)型提示信息。它是基于 JSDoc 規(guī)范的一部分,旨在提供一種標(biāo)準(zhǔn)的方式來(lái)描述代碼的結(jié)構(gòu)、功能和類(lèi)型信息
作用:接口文檔注釋有更新,對(duì)應(yīng)的api文檔會(huì)同步更新。確保接口變更,配置會(huì)同時(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 };
//在對(duì)應(yīng)的接口,注釋對(duì)應(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);
到此這篇關(guān)于Node.js自動(dòng)生成API文檔的文章就介紹到這了,更多相關(guān)Node.js自動(dòng)生成API內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何在Nestjs和Vue3中使用socket.io示例詳解
這篇文章主要為大家介紹了如何在Nestjs和Vue3中使用socket.io示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08NodeJS學(xué)習(xí)筆記之Connect中間件應(yīng)用實(shí)例
前面我們介紹了幾篇內(nèi)容的connect中間件的基礎(chǔ)知識(shí),今天我們來(lái)實(shí)例應(yīng)用一下,做個(gè)記事本的小應(yīng)用,希望大家能夠喜歡。2015-01-01node里的filesystem模塊文件讀寫(xiě)操作詳解
這篇文章主要為大家介紹了node里的filesystem模塊文件讀寫(xiě)操作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09nodejs 實(shí)現(xiàn)釘釘ISV接入的加密解密方法
這篇文章主要介紹了nodejs 實(shí)現(xiàn)釘釘ISV接入的加密解密方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧,需要的朋友可以參考下2017-01-01Vue+Node實(shí)現(xiàn)的商城用戶(hù)管理功能示例
這篇文章主要介紹了Vue+Node實(shí)現(xiàn)的商城用戶(hù)管理功能,結(jié)合實(shí)例形式詳細(xì)分析了商城用戶(hù)管理的前臺(tái)登錄、校驗(yàn)、跳轉(zhuǎn)、退出等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12node.js中跨域請(qǐng)求實(shí)現(xiàn)方法詳解
這篇文章主要介紹了node.js中跨域請(qǐng)求實(shí)現(xiàn)方法詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-12-12NodeJS和BootStrap分頁(yè)效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了NodeJS和BootStrap分頁(yè)效果的實(shí)現(xiàn)代碼的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11如何通過(guò)node.js來(lái)寫(xiě)接口詳解
最近研究了一下nodejs寫(xiě)接口,發(fā)現(xiàn)接口并不難寫(xiě),這篇文章主要給大家介紹了關(guān)于如何通過(guò)node.js來(lái)寫(xiě)接口的相關(guān)資料,文中通過(guò)實(shí)例代碼和圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09