尝试将Open API规范从2.0更新到3.0,但YAML仍然评估为2.0。

时间:2018-05-22 14:56:31

标签: node.js swagger swagger-ui openapi

我正在尝试将我的本地swagger项目从OpenAPI 2.0更新到OpenAPI 3.0。

我收到大量错误,这意味着我的YAML文件仍被评估为OAS2.0:

Project Errors
--------------
#/: Missing required property: swagger
#/: Additional properties not allowed: components,servers,openapi
#/paths/~1auth~1info~1firebase/get/responses/200: Not a valid response definition
#/paths/~1posts~1{id}~1comments/get/responses/200: Not a valid response definition
#/paths/~1posts~1{id}~1comments/get/parameters/2: Not a valid parameter definition
#/paths/~1posts~1{id}~1comments/get/parameters/1: Not a valid parameter definition
#/paths/~1posts~1{id}~1comments/get/parameters/0: Not a valid parameter definition
#/paths/~1users~1{id}~1profile/get/responses/200: Not a valid response definition
I have updated swagger-ui-express to the latest version.

以下是我的server.js文件的相关部分:

const YAML = require('yamljs');
const swaggerDocument = YAML.load('./api/swagger/swagger.yaml');
const SwaggerExpress = require('swagger-express-mw');
const swaggerUI = require('swagger-ui-express');
const api = express();

let swaggerConfig = 
{
  appRoot: __dirname
}
let swaggerOptions = 
{ 
  explorer: true 
};

api.use('/api/v1/docs/endpoints',
  swaggerUI.serve,
  swaggerUI.setup(swaggerDocument, swaggerOptions)
);

SwaggerExpress.create(swaggerConfig, function(err, swaggerExpress) {
   if (err) { throw err; }
   // install middleware
   swaggerExpress.register(api);
});

我已将swagger-ui-express和swagger-express-mw更新到最新版本。

但我仍然遇到上述错误。

我认为前进的方向可能是不使用swagger-ui-express 并且为swagger-ui重做我的代码,但我在网上看到人们似乎 得到的东西使用该npm模块。

任何想法我做错了什么?

0 个答案:

没有答案