是"评论" Open API 3.0规范或Swagger编辑器中受保护的单词?

时间:2017-10-20 04:20:50

标签: swagger swagger-editor openapi

我目前正在使用Swagger Editor(v3.1.9)和Open API 3规范开发API规范。

我特意为我命名为{% load static %} <link rel="stylesheet" href="{% static 'account/signup.css' %}"> 的模式组件获得了一些特殊的行为

Comment

在UI中,它呈现为(没有来自Message的继承)

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 { } } } 它将完全呈现(使用Message继承):

Commentary

我唯一能想到的是,Open API规范或Swagger编辑器中的任何一个或两个都有一个保留词用于Comment。我想知道的主要事情是,这确实是一个错误,或者我是否应该避免使用这个名称(如果是这样的话,如果还有其他我应该避免的话)

1 个答案:

答案 0 :(得分: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"