express开发api指南--引入swagger
安装依赖
cnpm install --save swagger-jsdoc swagger-ui-express
在根目录下新建swagger文件夹,并在里面新建index.js,内容如下
var path = require("path");
var express = require("express");
var swaggerUi = require("swagger-ui-express");
var swaggerJSDoc = require("swagger-jsdoc");
// 配置 swagger-jsdoc
const options = {
definition: {
// 采用的 openapi 版本 不用改
openapi: "3.0.0",
// 页面基本信息 自由发挥
info: {
title: "PG数据库增删改查接口",
version: "1.0.0",
},
components: {
securitySchemes: {
Authorization: {
type: "http",
scheme: "bearer",
bearerFormat: "JWT",
value: "Bearer <JWT token here>",
},
},
},
},
// 去哪个路由下收集 swagger 注释
apis: [path.join(__dirname, "../routes/*.js")],
};
var swaggerJson = function (req, res) {
res.setHeader("Content-Type", "application/json");
res.send(swaggerSpec);
};
const swaggerSpec = swaggerJSDoc(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;
在app.js里引入swagger。
!!!一定要在 app.use("/api", indexRouter, usersRouter);这句话后面引入。
// 引入swagger
var swaggerInstall = require("./swagger/index");
swaggerInstall(app);
现在就可以正式编写swagger内容查看效果了
在routes下的index.js里插入内容
/**
* @swagger
* /:
* get:
* tags:
* - pg数据库
* summary: 简单查询
* produces:
* - application/json
* responses:
* 200:
* description: successful operation
* schema:
* ref: #/definitions/Order
* 400:
* description: Invalid ID supplied
* 404:
* description: Order not found
* */
保存完输入 http://localhost:3000/swagger/#/ ,就可以查看到swagger的效果了。
具体的swagger配置可以参考: https://editor.swagger.io/