Swagger工具详解

Swagger是一个用于前后端分离的接口管理和测试工具集,它提供了规范来描述API,并能生成交互式文档和代码。Swagger编辑器、UI和Codegen分别用于编写、展示和生成API相关代码。作为OpenAPI规范的实现,Swagger有强大的工具生态系统和社区支持。

前言

小编前几天在学习了Swagger,一直都处于迷迷糊糊的,不太明白他的优势,单纯的认为只是提供给我们一个界面用于前后台的交互,其实还有很多其他的功能


What Swagger

swagger表示用于前后端分离,接口管理和测试工具集,Swagger规范定义了一系列的文件,用以描述API,这些文件被Swagger-ui显示用于展示API,也可以用于被Swagger-Codegen项目用于生产代码,我们使用Swagger进行APIDE设置
他可以帮助我们再看不到代码和源码的情况下,把我们我们去理解功能,调用我们的接口


Where Swagger

OpenAPI的前身是swagger规范


How Swagger

可以用json和YaML,另一种标记语言,可以被电脑直观识别的数据序列化格式

### Express 中使用 Swagger 注解的方法 在 Express 中集成 Swagger 可以为 API 提供强大的自动生成文档功能以及在线测试工具。通过 `swagger-jsdoc` 和 `swagger-ui-express` 这两个包可以轻松实现这一目标。 #### 安装依赖库 为了使项目能够识别并解析注释,需先安装必要的 NPM 包: ```bash npm install swagger-jsdoc swagger-ui-express --save ``` 此命令会下载所需的模块来生成 JSDoc 风格的注释,并将其转换成 Swagger 文档格式[^1]。 #### 创建 Swagger 配置文件 定义一个名为 `swagger.config.js` 的配置文件用于指定 API 版本、标题以及其他元数据信息: ```javascript const swaggerJSDoc = require('swagger-jsdoc'); // Swagger configuration options module.exports = { definition: { openapi: '3.0.0', info: { title: 'Express API with Swagger', version: '1.0.0' } }, apis: ['./routes/*.js'] // Path to the API docs files }; ``` 上述代码片段展示了如何设置 OpenAPI 规范版本和基本信息字段,同时也指定了要扫描哪些路径下的 JavaScript 文件以提取注释。 #### 编写带注解的路由函数 接下来,在具体的路由处理器中加入相应的注释标签以便于后续生成详细的 API 描述。下面是一个简单的 GET 请求例子: ```javascript /** * @swagger * /users/{id}: * get: * summary: Returns a single user by ID. * tags: [Users] * parameters: * - in: path * name: id * schema: * type: string * required: true * description: User ID * responses: * 200: * description: Successful response */ router.get('/:id', (req, res) => { const { id } = req.params; // Fetch and send back data... }); ``` 这段注释描述了一个获取特定用户的 RESTful 接口,其中包含了请求参数说明及可能返回的状态码等重要细节。 #### 启动 Swagger UI 最后一步是在应用启动时加载 Swagger UI 并挂载到某个 URL 路径下方便访问。这通常会在项目的入口文件 (`app.js`) 或者专门负责初始化中间件的地方完成: ```javascript const express = require('express'); const app = express(); const swaggerUi = require('swagger-ui-express'); const swaggerDocument = require('./swagger.json'); // Generated from swagger-config.js // Mounting swagger ui at '/docs' endpoint app.use('/docs', swaggerUi.serve); app.get('/docs', swaggerUi.setup(swaggerDocument)); // Start server listening on port 3000 app.listen(3000, () => console.log('Server started')); ``` 这样当服务器运行起来之后就可以通过浏览器打开 `/docs` 页面浏览完整的 API 文档了。
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王雪芬-ghqr-264962

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值