2017-10-20 13 views
1

私は現在、Swagger Editor(v3.1.9)とOpen API 3仕様を使用してAPI仕様に取り組んでいます。「コメント」は、Open API 3.0仕様またはSwaggerエディタの保護された単語ですか?

私はUIで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" 

を命名しているスキーマのコンポーネントのために特別にいくつかの特異な振る舞いを取得しています、それは(メッセージから継承なしで)としてレンダリングさ

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 Editorのいずれかまたは両方にComment用の予約語が何らかの形であることです。私が知りたいことは、これが本当にバグかどうか、もしこの名前を使うことを避けたいのであれば、それ以外の場合は避けてください。

答えて

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"