我目前正在使用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。我想知道的主要事情是,这确实是一个错误,或者我是否应该避免使用这个名称(如果是这样的话,如果还有其他我应该避免的话)
答案 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"