2017-10-20 336 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" 
相關問題