在Node.js中使用Swagger自動(dòng)生成API接口文檔
如何在Node.js項(xiàng)目中使用 Swagger 來自動(dòng)生成 API接口文檔,使用生成方式有很多種。本文基于
swagger-jsdoc+swagger-ui-express快速實(shí)現(xiàn)
1、直接使用swagger-ui-express
// 方便來瀏覽和測(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: "開發(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,通過在接口上面注釋信息后,就可以自動(dòng)更新對(duì)應(yīng)的api接口文檔,其本質(zhì)是通過讀取該接口對(duì)應(yīng)的注釋,然后再轉(zhuǎn)成對(duì)應(yīng)的配置。
2、配合swagger-jsdoc
JSDoc 注釋是一種特殊的注釋語(yǔ)法,用于為 JavaScript 代碼添加文檔化和類型提示信息。它是基于 JSDoc 規(guī)范的一部分,旨在提供一種標(biāo)準(zhǔn)的方式來描述代碼的結(jié)構(gòu)、功能和類型信息
作用:接口文檔注釋有更新,對(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);
參考
https://github.com/Surnet/swagger-jsdoc
https://github.com/scottie1984/swagger-ui-express
以上就是在Node.js中使用Swagger自動(dòng)生成API接口文檔的詳細(xì)內(nèi)容,更多關(guān)于Node.js Swagger生成API文檔的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
nodejs根據(jù)ip數(shù)組在百度地圖中進(jìn)行定位
本文主要介紹了nodejs根據(jù)ip數(shù)組在百度地圖中進(jìn)行定位的方法,具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-03-03
教你用Node.js與Express建立一個(gè)GraphQL服務(wù)器
GraphQL是一種通過強(qiáng)類型查詢語(yǔ)言構(gòu)建api的新方法,下面這篇文章主要給大家介紹了關(guān)于用Node.js與Express建立一個(gè)GraphQL服務(wù)器的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
nodejs個(gè)人博客開發(fā)第六步 數(shù)據(jù)分頁(yè)
這篇文章主要為大家詳細(xì)介紹了nodejs個(gè)人博客開發(fā)的數(shù)據(jù)分頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化,本文是對(duì)第一節(jié)的例子作了封裝,需要的朋友可以參考下2014-12-12
輕松創(chuàng)建nodejs服務(wù)器(6):作出響應(yīng)
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(6):作出響應(yīng),我們接著改造服務(wù)器,讓請(qǐng)求處理程序能夠返回一些有意義的信息,需要的朋友可以參考下2014-12-12

