2017-10-20 104 views
1

我目前正在使用Swagger Editor(v3.1.9)和Open API 3规范开发API规范。在Open API 3.0规范或Swagger编辑器中,“注释”是一个受保护的词吗?

我得到一些特殊的行为专门为架构组件我有一个名为Comment

Comment: 
    description: "A comment on an asset or submission" 
    allOf: 
    - $ref: "#/components/schemas/Message" 
    type: object 
    properties: 
     parent: 
     oneOf: 
     - $ref: "#/components/schemas/Asset" 
     - $ref: "#/components/schemas/Submission" 

在UI,它呈现为(与没有从消息继承)

Comment { 
    description: A comment on an asset or submission 
    parent  { 
       oneOf -> { 
       } 
      v { 
      } 
     } 
} 

但是,如果我将它重命名为Commentary,它将完全呈现(继承自消息):

Commentary{ 
    description: A comment on an asset or submission 
    id string($uuid) 
    example: f1907c82-2c5f-4f60-8cd9-12647d411822 
    author User{...} 
    body string 
      example: Lorem ipsum dolor sit amet 
    message_type string 
       example: DiscussionPost 
    parent { 
      oneOf -> Asset{...} 
         Submission{...} 
      } 
} 

我能想到的唯一的事情就是,在Open API规范或Swagger编辑器中的任何一个或两个中都有某种保留字用于评论。我想知道的主要事情是,如果这确实是一个bug,或者我是否应该用这个名字来避免(如果是这样的话,如果有任何其他我应该避免)

回答

3

没有,Comment不是保留字。问题在于你的规格。

当使用模型组合物(allOf),被组合的所有模型必须是内部allOf,像这样:

Comment: 
     description: "A comment on an asset or submission" 
     allOf: 
     - $ref: "#/components/schemas/Message" 
     - type: object  # <------- 
     properties: 
      parent: 
      oneOf: 
      - $ref: "#/components/schemas/Asset" 
      - $ref: "#/components/schemas/Submission" 
相关问题