node.js使用swagger来测试post请求传递body数据的API

node.js如何使用swagger来测试post请求传递body数据的API

第一步:安装swagger

npm i swagger-ui-express
npm i swagger-jsdoc

单独把以下代码拷贝到js文件中(我是保存在swagger文件夹下的index.js)

const path = require('path')
const express = require('express')
const swaggerUI = require('swagger-ui-express')
const swaggerDoc = require('swagger-jsdoc')
//配置swagger-jsdoc
  const options = {
    definition: {
      openapi: '3.0.0',
      info: {
        title: 'api',
        version: '1.0.0',
        description: `todolist接口api`
      }
    },
    // 去哪个路由下收集 swagger 注释
    apis: [path.join(__dirname,'../NodeApp.js')]
  }

  var swaggerJson = function (req, res) {
    res.setHeader('Content-Type', 'application/json');
    res.send(swaggerSpec);
  }
  const swaggerSpec = swaggerDoc(options)
  
  var swaggerInstall = function(app) {
    if (!app){
      app = express()
    }
    // 开放相关接口,
    app.get('/swagger.json', swaggerJson);
    // 使用 swaggerSpec 生成 swagger 文档页面,并开放在指定路由
    app.use('/swagger', swaggerUI.serve, swaggerUI.setup(swaggerSpec));
  }
  module.exports = swaggerInstall 

 第二步:引用swagger,在你需要使用swagger的js文件加上这两行代码

var swaggerInstall=require('./swagger') //这里的路径是你刚刚创建js的路径
swaggerInstall(app);

由于swagger是识别多行注释来处理的,所以继续再加上以下注释(放在任意位置即可),

注意:/getuser是我自己要访问的node.js后端路径,要记得改成你自己的路径

/**,
 * @swagger
 *paths:
 *  /getuser:
 *   post:
 *     summary: Add a new pet
 *     requestBody:
 *       description: Optional description in *Markdown*
 *       required: true
 *       content:
 *         application/json:
 *           schema:
 *             $ref: ''
 *     responses:
 *       '201':
 *         description: Created
 * */

第三步:执行node.js,浏览器中访问http://localhost:8081/swagger

(我用的是8081端口号,你自己填你自己的端口号) 

如果看到这个界面,你离成功不远了

 第四步:该界面的try it out,把里面的“string”替换成你要传输的数据(我传输了:

{"username":"小明","password":"443322"})

 最后点击execute,成功接收到数据

 最后:

这个是官方文档关于如何传递post请求body数据的连接:Describing Request Body (swagger.io)

里面讲解得更详细。

如果有写错或者遗漏的欢迎在评论区反应,因为我也是新手,写下了方便我以后解决。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值