我正在尝试将我的 Express api 从 swagger 2.0 迁移到 openapi 3.0.2。swagger 定义和路径是在 swagger-jsdoc 中编写的。这应该不会导致任何问题,因为他们的文档声明它可以与 openapi 3.x 以及 swagger 2.0 一起使用。
将 openapi: 3.0.x 添加到我的 swaggerDefinition 时,视图看起来很好。但是,当尝试通过 swagger 视图执行发布请求时,正文为空。
我的招摇定义如下所示:
const swaggerOptions = {
swaggerDefinition: {
openapi: '3.0.2',
info: {
title: `Channels API`,
description: "Channels API",
version: "v1"
},
servers: [ {
url: "http://127.0.0.1:3000",
description: 'Local server'
}],
},
apis: ['./routes/*.js'],
};
Run Code Online (Sandbox Code Playgroud)
现在我有一个文件channels.js作为路由器:它有以下定义:
class Channel extends BaseRouter {
/**
* @swagger
*
* definitions:
* channel:
* type: object
* tags:
* - …Run Code Online (Sandbox Code Playgroud) 我正在为 node.js 和 express 框架中的一个项目集成 swagger 文档,
NPM: Swagger JSDoc - ^4.0.0 NPM
以下是文件夹结构:(注:模块1,模块2和模块3文件夹!)
- app
- module-1
- module-1.controller.js
- module-1.model.js
- module-1.route.js
- module-2
- module-2.controller.js
- module-2.model.js
- module-2.route.js
- module-3
- module-3.controller.js
- module-3.model.js
- module-3.route.js
Run Code Online (Sandbox Code Playgroud)
工作示例:
swaggerJSDoc({
swaggerDefinition: {
...require('../swagger.json')
},
apis: [
'./app/module-1/*',
'./app/module-2/*'
'./app/module-3/*'
]
})
Run Code Online (Sandbox Code Playgroud)
节点:我不想每次创建一个像上面例子那样的新模块时都添加模块路径。
我期待的是下面的示例:我想将它设置一次,如设置主文件夹/文件路径,它将自动从提供的主文件夹/文件路径加载 API Doc 数据。
我尝试下面的例子,但它不工作/app/*:
swaggerJSDoc({
swaggerDefinition: {
...require('../swagger.json')
},
apis: [
'./app/*'
]
})
Run Code Online (Sandbox Code Playgroud)
请指导是否有任何方法可以做到这一点,任何形式的建议将不胜感激,谢谢。
我有一个简单的 nodeJS 项目,想在其中添加 swagger 。我需要 swaggerUI 和 swaggerJSDoc
这是我的 app.js 文件。
// requires
const path = require("path");
const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const postsRoutes = require("./routes/posts/posts");
const userRoutes = require("./routes/auth/user");
const swaggerUi = require("swagger-ui-express");
const swaggerJSDoc = require("swagger-jsdoc");
// https://swagger.io/specification/v2/
const swaggerOptions = {
swaggerDefinition: {
info: {
title: "Post API",
description: "This is a sample Post API",
contact: {
name: "Test ",
url: "http://www.swagger.io/support",
email: "test@gmail.com"
},
servers: ["http://localhost:3850/"]
}
},
swagger: …Run Code Online (Sandbox Code Playgroud)