首页 > 其他分享 >在Express中使用Swagger

在Express中使用Swagger

时间:2023-05-23 20:14:36浏览次数:37  
标签:express const require Express API 使用 Swagger

Swagger是什么?

Swagger是一种规范,用于描述API的结构,功能和参数。它是一种开源工具,可通过该工具生成API文档,用于开发和测试。使用Swagger可以提供清晰的可视化API文档,可用于API交互的文档驱动开发,以及API的自动化测试和集成。Swagger已经成为API设计和开发中的必备工具。

如何在Express中使用Swagger?

在Express中使用Swagger,需要以下步骤:

安装Swagger

npm install swagger-jsdoc swagger-ui-express --save

在代码中定义Swagger规范

具体可以参考Swagger官网规范说明或使用Swagger Editor进行编写。

例如,我们可以在文档注释中添加Swagger规范:

/**
 * @swagger
 * /users:
 *  get:
 *    summary: 获取所有用户信息
 *    responses:
 *      200:
 *        description: 成功获取所有用户信息
 * 
 *  post:
 *    summary: 创建用户
 *    parameters:
 *      - in: body
 *        name: user
 *        schema:
 *          type: object
 *          properties:
 *            name:
 *              type: string
 *            age:
 *              type: integer
 *    responses:
 *      200:
 *        description: 成功创建用户
 */

使用Swagger生成API文档

const express = require('express');
const swaggerJsdoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');

const app = express();

const options = {
    definition: {
        openapi: '3.0.0',
        info: {
            title: 'My API',
            version: '1.0.0'
        }
    },
    apis: ['./routes/*.js']
};

const swaggerSpec = swaggerJsdoc(options);

app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));

其中,definition字段用于定义Swagger规范,apis字段用于指定使用Swagger规范的API文件路径

Express路由实现

const express = require('express');
const router = express.Router();

router.get('/users', (req, res) => {
    res.status(200).json({data: [{name: 'Tom', age: 20}, {name: 'Lucy', age: 22}]});
});

router.post('/users', (req, res) => {
    res.status(200).json({success: true});
});

module.exports = router;

启动express服务

const express = require('express');
const app = express();
const userRouter = require('./routes/user');

app.use('/api', userRouter);

app.listen(3000, () => {
    console.log('Server started on port 3000');
});

以上内容覆盖了Express和Swagger的API文档编写和集成。最终可以使用 http://localhost:3000/api-docs/ 访问所有使用Swagger规范写的Express路由和API接口。

通过Swagger生成的API文档,对于API的定义、格式和约束都能进行覆盖,这就能让我们在协作开发团队时,不会出现由于理解偏差或定义不一致,导致API定义和标准不统一、出现混乱的问题。

标签:express,const,require,Express,API,使用,Swagger
From: https://www.cnblogs.com/biem/p/17426229.html

相关文章

  • NLog使用
    Nlog日志组件的使用这个博文关注.netframework下的NLog日志组件的使用.在项目中需要将日志写到日志文件中,另外一些重要信息要显示在界面上.使用NLog可以轻松做到这点.NLogwiki页面nuget安装两个主要组件NLogNLog.Windows.Forms使用总结日志文件layout按......
  • C# 读取网络上下行(不要使用性能计数器的方式)
    C#读取网络上下行有多种方式,其中有一种是使用System.Net.NetworkInformation命名空间中的NetworkInterface类和PerformanceCounter类,该方式其实读的是windows系统的性能计数器中的NetworkInterface类别的数据。方式如下:NetworkInterfacenetworkInterface=NetworkInterface......
  • 解决nginx+django+swagger打开swagger需要进行Django Login
    一、将drf-yasg包的static目录拷贝到Django项目根目录下二、修改nginx配置,添加如下红框中的内容三、重启nginxsystemctlrestartnginx这样再次打开http://XXX:XX/swagger/即可直接打开swagger接口文档 ......
  • 记录--使用率比较低的10个Web API
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助avaScript中有些API可能使用率比较低,下面我们逐一介绍它们的用法和使用场景。至于标题,主要是想让你进来看看,兄弟们别打我!BlobAPIBlobAPI用于处理二进制数据,可以方便地将数据转换为Blob对象或从Blob对象读取数......
  • mac docker compose简单使用说明
    1dockercompose简介Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用Compose通过一个配置文件来管理多个-Docker容器,非常适合组合使用多个容器进行开发的场景。docker-compose是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没......
  • mac的截图及sips使用心得
    1-mac推荐截图工具从ubuntu切换到Mac,最放不下手的其实是一个叫flameshot的截图工具,确实是ubuntu系统的神器,但是渐渐熟悉mac后发现mac才是各种大杀器的集合地,今天想谈到的就是截图工具,初接触mac的时候,几乎接触了mac大多数别人推荐的截图工具,如下所示:系统截图工具;微信截图工具;浏览器......
  • Day01-Typora工具使用
    Markdown学习二级标题三级标题四级标题 字体helloworldhelloworldhelloworldhelloworld 引用学习java第一天 分割线 图片 超链接点击跳转到小兔子的博客 列表ABCABC 表格快捷键⌘+⌥+T姓名性别年纪张......
  • .Net使用HttpClient以multipart/form-data形式post上传文件及其相关参数
    httpClient模仿Postman的form-data格式 api接口[HttpPost(Name="/Test/FileTest")]publicJGResponse<PutFileByNameResponse>FileTest([FromForm]PutFileByNameRequestrequestDto){varcapthch=GetCaptcha();......
  • APlayer & MetingJS 音乐播放器使用指南
    1.介绍APlayer是一个简洁漂亮、功能强大的Html5音乐播放器,GitHub地址:https://github.com/DIYgod/APlayerMetingJS是为APlayer添加网易云、QQ音乐等支持的插件,GitHub地址: https://github.com/metowolf/MetingJS2.安装引用三个文件APlayer.min.js  APlayer.min.css ......
  • 使用n对Mac上的Node版本进行管理及升降
    n如果在我的电脑上已经安装了nodejs,但是觉得这个版本不好用,或者是不兼容公司的项目,那么可以使用n进行node的版本管理。n相对于nvm来说,安装起来还是非常方便的。安装1.首先确定nodejs版本,确定已安装nodejsnode-v2.清除nodejs的缓存sudonpmcacheclean-f3.使用npm全......