swagger split definition yaml - 模型结构未显示

时间:2016-03-17 10:09:34

标签: yaml swagger swagger-ui swagger-2.0

我正在使用swagger 0.7.5并尝试将swagger.yaml文件拆分为多个。我使用express命令来创建项目。选择的框架是swagger.yaml。执行这些命令创建了一个具有ExpressJS设置和默认swagger: "2.0" info: version: "0.0.1" title: Hello Service host: localhost:10010 basePath: / ... #skipping code for brevity paths: /hello: x-swagger-router-controller: user get: description: Say hello operationId: hello parameters: - name: name in: query description: The name of the person to whom to say hello required: false type: string responses: "200": description: Success schema: # a pointer to a definition $ref: "#/definitions/HelloResponse" default: description: Error schema: $ref: "#/definitions/ErrorResponse" /swagger: x-swagger-pipe: swagger_raw definitions: HelloResponse: $ref : models/response/hello_response.yaml ErrorResponse: required: - message properties: message: type: string 文件的nodejs项目。由于我的目标是一个大型应用程序,我想将yaml文件分成多个。根据文档,我已经开始将响应模型外部化到外部文件,这就是它的外观

swagger.yaml

type: string
properties:
  message:
    type: string

模型/响应/ hello_response.yaml

swagger project start

在项目目录的根目录执行命令- api -- swagger --- swagger.yaml - config -- config.yaml - models -- response --- hello_response.yaml - app.js 后,服务启动并在浏览器中显示文档。问题是,swagger doc没有显示外部化yaml文件的结构,并显示以下错误消息。

enter image description here

项目的目录结构如下所示

models

注意:我尝试在swagger.yaml级别复制$(".nav li:nth-child(5)").click(function() { $(".nav li").toggleClass("active2"); });目录,但这也不起作用。

2 个答案:

答案 0 :(得分:1)

没关系,在尝试了很多选项之后,我终于通过在app.js

中添加以下行来解决了这个问题
app.use("/models", express.static("models"));

答案 1 :(得分:0)

补充CuriousMind的回复

const appRoot = require('app-root-path');

app.use("/paths", express.static(`${appRoot}/api/swagger/paths`));
app.use("/models", express.static(`${appRoot}/api/swagger/models`));

并在尝试之后:http://localhost:port/paths/yourfile.yaml