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/

posted @ 2023-05-24 18:47  火炬冬天  阅读(326)  评论(0)    收藏  举报