Swagger 不显示带有 Express 注释的文档
Swagger not showing documentation with Express annotations
所以我有一个简单的休息 API 可以与 Express 和 MySQL 一起使用,现在我想添加一些 swagger 文档,经过一些搜索后我找到了一个 youtube 视频,这个人记录了他的API 使用注释。我已经完成了 api-docs 路线的第一部分,但它似乎无法找到注释。
提前致谢,祝新年快乐 :D
app.js:
app.get("/", (req, res) => {
res.send("Welcome to root!");
});
fs.readdir("./routes", (err, files) => {
files.forEach(file => {
app.use("/", require("./routes/" + file));
});
});
// configure and setup swagger
const swaggerOptions = {
swaggerDefinition: {
info: {
title: "Rest API",
description: "A simple rest API",
servers: ["http://localhost:3003"]
}
},
apis: [".routes/*.js"]
};
const swaggerDocs = swaggerJsDoc(swaggerOptions);
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocs));
routes/user.js:
const express = require("express");
const router = express.Router();
const getConnection = require("../db.js");
/**
* @swagger
* /user:
* get:
* description: Returns all users
* responses:
* '200':
* description: Successfully returned all user
* '500':
* description: Failed to query for users
* put:
* description: Use to insert a new user
* parameters:
* - name: firstName
* in: body
* description: Firstname of the user
* required: true
* schema:
* type: string
* format: string
* - name: lastName
* in: body
* description: lastName of the user
* required: true
* schema:
* type: string
* format: string
* responses:
* '200':
* description: Successfully inserted a user
* '500':
* description: Failed to insert a user
*/
router
.route("/user")
.get((req, res) => getAllUsers(req, res))
.post((req, res) => insertUser(req, res));
router
.route("/user/:id")
.get((req, res) => getUserById(req, res))
.put((req, res) => updateUser(req, res))
.delete((req, res) => deleteUserById(req, res));
apis: ["./routes/*.js"] 解决了问题
所以我有一个简单的休息 API 可以与 Express 和 MySQL 一起使用,现在我想添加一些 swagger 文档,经过一些搜索后我找到了一个 youtube 视频,这个人记录了他的API 使用注释。我已经完成了 api-docs 路线的第一部分,但它似乎无法找到注释。
提前致谢,祝新年快乐 :D
app.js:
app.get("/", (req, res) => {
res.send("Welcome to root!");
});
fs.readdir("./routes", (err, files) => {
files.forEach(file => {
app.use("/", require("./routes/" + file));
});
});
// configure and setup swagger
const swaggerOptions = {
swaggerDefinition: {
info: {
title: "Rest API",
description: "A simple rest API",
servers: ["http://localhost:3003"]
}
},
apis: [".routes/*.js"]
};
const swaggerDocs = swaggerJsDoc(swaggerOptions);
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocs));
routes/user.js:
const express = require("express");
const router = express.Router();
const getConnection = require("../db.js");
/**
* @swagger
* /user:
* get:
* description: Returns all users
* responses:
* '200':
* description: Successfully returned all user
* '500':
* description: Failed to query for users
* put:
* description: Use to insert a new user
* parameters:
* - name: firstName
* in: body
* description: Firstname of the user
* required: true
* schema:
* type: string
* format: string
* - name: lastName
* in: body
* description: lastName of the user
* required: true
* schema:
* type: string
* format: string
* responses:
* '200':
* description: Successfully inserted a user
* '500':
* description: Failed to insert a user
*/
router
.route("/user")
.get((req, res) => getAllUsers(req, res))
.post((req, res) => insertUser(req, res));
router
.route("/user/:id")
.get((req, res) => getUserById(req, res))
.put((req, res) => updateUser(req, res))
.delete((req, res) => deleteUserById(req, res));
apis: ["./routes/*.js"] 解决了问题