利用Swagger生成express接口文档

644 字
3 分钟
利用Swagger生成express接口文档

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。

主要利用这两个包:

步骤#

1. 安装 npm 包#

Terminal window
npm install swagger-jsdoc swagger-ui-express

2. Swagger 配置#

在项目根目录创建 swagger/swaggerDocs.js 配置文件,用于定义 swagger 配置:

import swaggerJsdoc from 'swagger-jsdoc'
const swaggerOptions = {
definition: {
openapi: '3.0.0',
info: {
title: 'Express API with Swagger', // title: API 的标题
version: '1.0.0', // version: API 的版本号
description: 'A simple CRUD API application with Express and Swagger', // description: API 的描述信息
},
servers: [
{
url: 'http://localhost:3000',
},
],
},
apis: ['./routes/**/*.js'], // 使用了 './routes/**/*.js',这会匹配 routes 文件夹及其所有子文件夹中的所有 .js 文件
}
const swaggerDocs = swaggerJsdoc(swaggerOptions)
export default swaggerDocs

通过这些配置,swagger-jsdoc 将扫描指定的路由文件,解析其中的 Swagger 注释,并生成对应的 Swagger 文档。这些文档可以通过 swagger-ui-express 在浏览器中进行可视化展示。

3. 在 app.js 引入 swagger#

app.js
...
import swaggerUi from 'swagger-ui-express'
import swaggerDocs from './swagger/swaggerConfig'
// 使用 Swagger
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));
...

此时访问 localhost:3000/api-docs 就可以看到 Swagger 页面(还没有配置,所以接口为空)

express-swagger-blank
express-swagger-blank

4. 在 router 中配置接口文档信息#

在路由文件中添加 Swagger 注释

Swagger 注释是一种在代码中嵌入文档信息的方式,用于描述 API 的各个方面,包括路径、方法、参数、响应等。Swagger 通过解析这些注释来生成 API 文档,因此注释的格式和规则非常重要。下面是 Swagger 注释的一些基本规则和常用标记:

基本规则

1. 基本结构:
• Swagger 注释以 @swagger 或 @openapi 开头,后面紧跟着 YAML 或 JSON 格式的文档信息。
2. 路径和方法:
• 使用 @swagger 标记来描述 API 路径和方法。例如:
/**
* @swagger
* /users:
* get:
* summary: 获取所有用户
* description: 返回所有用户列表
*/
  1. 参数和响应: • 描述请求参数和响应体的结构和类型。可以使用 parameters 和 responses 来定义。
/**
* @swagger
* /users:
* get:
* summary: 获取所有用户
* parameters:
* - name: id
* in: query
* required: true
* type: string
* description: 用户ID
* responses:
* '200':
* description: 成功获取用户列表
* schema:
* type: array
* items:
* $ref: '#/definitions/User'
*/
5. 其他常用标记:
• @summary:API 摘要或简要描述。
• @description:详细描述 API 的作用和功能。
• @param:描述函数或方法的参数。
• @returns 或 @return:描述函数或方法的返回值。
• @deprecated:标记 API 已弃用。
利用Swagger生成express接口文档
https://wangxiang.website/posts/前端工程/express-swigger/
作者
翔子
发布于
2024-06-21
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
翔子
前端开发工程师
公告
博客已从 VitePress 迁移到 Astro + Firefly 主题,223 篇文章全部保留。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
221
分类
9
标签
28
总字数
411,914
运行时长
0
最后活动
0 天前

文章目录