在 Swagger 2.0 的定义中使用“security”关键字作为属性名称

问题描述 投票:0回答:4

我的定义部分中有一个对象需要有一个名为 security 的属性,但是当我这样做时,swagger 编辑器会给出错误消息:

definitions.User.properties.security.properties 处的语义错误 安全要求必须与安全定义相匹配 跳转到第 49 行

这是我的定义

definitions:
  Security:
    type: object
    properties:
      name:
        type: string
  User:
    type: object
    required: 
     - can
     - username
    properties:
      can:
        type: integer
        readOnly: true
      username:
        type: string
        format: email
        readOnly: true
      security:
        $ref: '#/definitions/Security'

有什么我可以做到这一点并避免错误吗?

swagger-2.0 swagger-editor
4个回答
3
投票

这个 bug 早在 2017 年就在 Swagger Editor 3.2.0+ 中得到了修复。

问题在于名为

security
的模型属性被错误地标记为安全定义的一部分。实际上,仅当在全局级别或路径级别使用时,
security
才应被视为保留关键字;可以有一个名为
security
的模型属性。


0
投票

似乎是 Swagger 编辑器中的一个错误,需要报告。旧 Swagger Editor 所拥有的一切都很好,而新 Swagger Editor 正在报告您提到的问题。


0
投票

更换

安全:

  • 持有者:[] 与

安全:

  • bearerAuth:[]

-1
投票

我还见过这个工具,它可以让您直观地构建 API 定义,然后将它们导出到 swagger(或导入):

https://apibldr.com

也许它可以帮助您构建 API 定义。

© www.soinside.com 2019 - 2024. All rights reserved.