使用swagger
安装依赖
npm i swagger-ui-express swagger-jsdoc
swagger.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: `测试`,
},
// 添加身份验证
components: {
securitySchemes: {
Bearer: {
type: "apiKey",
in: "header",
name: "Authorization",
},
},
},
security: [
{
Bearer: [],
},
],
},
// 去哪个路由下收集 swagger 注释
apis: [path.join(__dirname, "../../api/*.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接口
此时去访问http://localhost:3000/swagger 应该是可以的,但是里面并没有接口数据,你需要在写接口的地方加上swag的注解
以登录接口为例
/**
* @swagger
* /Admin/Login:
* post:
* tags: [admin]
* summary: "登录"
* consumes:
* - application/json
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* properties:
* userName:
* type: string
* password:
* type: string
* required:
* - userName
* - password
* responses:
* '200':
* description: Successful response
*/
如此,再次访问,就可以看到swagger有了一个登录接口了