cal*_*tus 0 node.js express swagger swagger-ui
我正在使用 Swagger 编写 API 文档。我已经在我的 Express 项目上成功设置了 Swagger,但是只要端点位于 app.js 文件之外的另一个路由文件上,端点的文档就不会显示
下面是我的 App.js 文件
const express = require('express')
const port = process.env.PORT
const userRouter = require('./routers/user')
require('./db/db')
const app = express()
const swaggerJsDoc = require("swagger-jsdoc");
const swaggerUi = require("swagger-ui-express");
// Extended: https://swagger.io/specification/#infoObject
const swaggerOptions = {
swaggerDefinition: {
info: {
title: "MY API TITLE",
description: "API Documentation",
contact: {
name: "Cali"
},
servers: ["http://localhost:3000"]
}
},
// ['.routes/*.js']
apis: ["app.js"]
};
const swaggerDocs = swaggerJsDoc(swaggerOptions);
app.use("/api/doc", swaggerUi.serve, swaggerUi.setup(swaggerDocs, {explorer: true}));
app.use(express.json())
app.use(userRouter)
app.listen(port, () => {
console.log(`Server running on port ${port}`)
})Run Code Online (Sandbox Code Playgroud)
下面是我的用户路由文件
const express = require('express')
const User = require('../models/User')
const auth = require('../middleware/auth')
const router = express.Router()
const swaggerJsdoc = require("swagger-jsdoc");
const swaggerUi = require("swagger-ui-express");
router.use('/api-docs', swaggerUi.serve);
router.get('/api-docs', swaggerUi.setup(swaggerJsdoc));
/**
* @swagger
* /customers:
* get:
* description: Use to request all customers
* responses:
* '200':
* description: A successful response..
*/
router.get('/customers', (req, res) => {
res.status(200).send('Welcome to Customers page');
})Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?PS:我是 Swagger 新手
您找到问题的答案了吗?
我正在与一些类似的场景作斗争,我已经意识到这一点:
// ['.routes/*.js']
apis: ["app.js"]
Run Code Online (Sandbox Code Playgroud)
您需要指定所有js 路由文件所在的绝对路径。您还可以使用正则表达式!
我的项目结构是:
-/src
--/app
----/routes
------login.route.js (here is my **login route** with the @swagger notation)
------user.route.js (here is my **user route** with the @swagger notation)
Run Code Online (Sandbox Code Playgroud)
所以我的正则表达式是
apis: ['./src/app/routes/**.js'],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2364 次 |
| 最近记录: |