在 TypeScript 和 Node.js 中使用 Swagger 可以帮助你生成自动化的 API 文档,并使你的 API 更容易理解和使用。
安装必要的依赖项,Swagger 相关的库:
npm install swagger-ui-express swagger-jsdoc @types/ swagger-jsdoc @types/swagger-ui-express
在 src/swagger.ts 中配置 Swagger:
import swaggerUi from 'swagger-ui-express';
import swaggerJsdoc from 'swagger-jsdoc';
import express from 'express';
import path from 'path';
const swaggerOptions = {
definition: {
openapi: '3.0.0',
info: {
title: 'My Express API',
version: '1.0.0',
},
},
apis: ['./src/routes.ts'], // Path to the API definition file
};
const swaggerSpec = swaggerJsdoc(swaggerOptions);
export const swaggerSetup = (app: express.Application) => {
app.use('/api-docs', swaggerUi.serve);
app.get('/api-docs', swaggerUi.setup(swaggerSpec));
};
在 src/routes.ts 中定义你的路由并使用 JSDoc 注释来描述 API:
import express from 'express';
/**
* @swagger
* /hello:
* get:
* summary: Returns a hello message
* responses:
* 200:
* description: Hello World
*/
export const routes = (app: express.Application) => {
app.get('/hello', (req, res) => {
res.send('Hello World!');
});
};
注释的位置与代码没有关系,只要注释在可以扫描的文件中就可以,甚至可以没有具体的代码。