无法设置摇摇欲坠-无法读取未定义的属性“参数”

时间:2020-02-17 22:38:58

标签: javascript node.js express swagger openapi

在将swagger设置到我的node.js应用程序中时遇到问题。我正在使用while((matchlist.get(index).getSignature()).NOTequals(signature)) swagger-jsdoc创建文档。这是版本

“ swagger-jsdoc”:“ 3.5.0”,“ swagger-ui-express”:“ 4.1.3”

下面是配置,我将其传递给swagger-jsdoc。

swagger-ui-express

毕竟,我得到一个错误

无法读取未定义的属性“参数”

实际上,当我仔细阅读大量的文档时,这令我感到惊讶。 可能是什么问题?

1 个答案:

答案 0 :(得分:0)

OpenAPI不支持$ref 无处不在$ref仅可在OpenAPI Specification明确声明字段值可以是“引用对象”的特定位置使用。

例如,不允许在$refpathscomponents/parameters下直接使用components/schemas-您只能引用单个路径,参数和模式。

您的示例的正确版本是:

paths:
  /foo:
    $ref: '#/paths/index.yml#/~1foo'  # $ref to root node `/foo` in `paths/index.yml`
  /bar:
    $ref: '#/paths/index.yml#/~1bar'  # $ref to root node `/bar` in `paths/index.yml`

components:
  parameters:
    param1:
      $ref: 'components/parameters/index.yml#/param1'
    param2:
      $ref: 'components/parameters/index.yml#/param2'
  schemas:
    schema1:
      $ref: 'components/schemas/index.yml#/schema1'
    schema2:
      $ref: 'components/schemas/index.yml#/schema2'


如果要在随机的地方使用$ref,则必须使用可以解析任意$ ref的解析器/工具对定义进行预处理。这将为您提供可与兼容OpenAPI的工具一起使用的有效OpenAPI文件。 json-refs是一种这样的预处理工具,您可以找到预处理here的示例。