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)
里面讲解得更详细。
如果有写错或者遗漏的欢迎在评论区反应,因为我也是新手,写下了方便我以后解决。