使用"安全"关键字Swagger 2.0定义中的属性名称

时间:2017-07-18 17:31:15

标签: swagger-2.0 swagger-editor

我的定义部分中有一个对象,需要有一个名为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'

我能做到这一点并避免错误吗?

3 个答案:

答案 0 :(得分:2)

Swagger Editor 3.x的验证器中的

It's a bugsecurity是OpenAPI / Swagger中的关键字,但在全局级别或路径级别使用时,它只是一个保留关键字,因此可以使用名为{{1}的模型属性}。

在修复此错误之前,您可以忽略此警告,或者您可以在http://editor2.swagger.io使用旧的Swagger Editor 2.x。

答案 1 :(得分:0)

看起来像需要报告的Swagger编辑器中的错误。 Old Swagger Editor完全没问题,而新的Swagger Editor报告了您提到的问题。

答案 2 :(得分:-1)

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

https://apibldr.com

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