我试图在OpenAPI 3.0.2规范中定义模式。我希望其中一个属性对值列表进行验证。
通常情况下,我可以使用enum执行此操作。
components:
schemas:
catalog:
title: title here
description: describing it here
properties:
catalogitemid:
description: catalog identifier
type: string
enum:
- item1347
- item9081
- item5720
catalogitemname:
description: catalog item name
type: string
required:
- catalogitemid
- catalogitemname
additionalProperties: false
但是我希望这个枚举列表是一个远程YAML/JSON。
原因:此列表需要定期更新(2000个值)。我想避免这迫使更新这个应用编程接口。
低于$ref的方法失败:
components:
schemas:
catalog:
title: title here
description: describing it here
properties:
catalogitemid:
description: catalog identifier
type: string
enum:
$ref: 'https://remote/path/to/catalog/list.yaml#/components/schemas/catalogitemid/enum'
catalogitemname:
description: catalog item name
type: string
required:
- catalogitemid
- catalogitemname
additionalProperties: false
错误:
行目录
原因
应该有所需的属性$ref
missingProperty:$ref
应该完全匹配一个架构中的一个
和行enum
原因
应该是数组
有什么方法可以做到这一点?
OpenAPI规范只允许在某些上下文中使用$ref
,而不是在任何地方。不能仅使用$ref
枚举值列表,但可以$ref
整个属性架构:
# This won't work
enum:
$ref: 'https://...'
# This will work
properties:
catalogitemid:
$ref: 'https://remote/path/to/enums/catalog-list.yaml'
上面的示例假设列表。yaml
文件包含:
description: catalog identifier
type: string
enum:
- item1347
- item9081
- item5720
...
也就是说,有json refs或openapi预处理器等工具可以解析文档中任何位置的json引用和json指针。您可以使用它们预处理问题中的原始规范,这将生成一个有效的已解析OpenAPI定义,然后可以与符合OpenAPI的工具一起使用。
我的JPA实体作为枚举字段 哪里 如果我用规范添加where条件 将枚举包含到规范查询中的正确方法是什么?
我有一个从swagger 2.0更新到openapi 3.0.0的yaml规范。 文件本身大约有 7,000 行,因此手动验证具有挑战性。 我需要找出哪些标记不再与openapi 3.0.0兼容。如何验证我的模式?有没有我可以使用的命令行工具? 我不想将此代码复制/粘贴到在线某个地方,因为我不想公开所有路由。
问题内容: 是否可以创建枚举值的ArrayList(并对其进行操作)?例如: 问题答案: 是的,绝对有可能,但是您必须这样做 然后,您可以将元素添加到:或。
问题内容: 以下哪项将被认为是更好/更清晰/更快/更多的“ Pythonic”?我不在乎列表的内容,只关心它的持续时间。 要么 如果有什么不同,该函数也会利用。 问题答案: 一些快速的计时运行似乎使第二个选项略有优势: 只是为了好玩而已(Python v2.7.2) 我希望 首先 使用 可读代码 ,然后使用(如果可用)(例如,Python 3.x之前的版本),然后使用和。
问题内容: 我有一个枚举的类对象(我有一个),我需要获取此枚举表示的枚举值的列表。该静态函数有我需要什么,但我不知道怎么去从类对象访问它。 问题答案:
我有多个请求体需要使用相同的枚举,但我很难跨多个模式引用单个定义。 在我的< code>openapi.yaml文件中,我包含了: 在我为 POST/PUT 请求设置的正文定义中,我包括: 但在生成的代码中,正在创建的是: 而一个单独的类是使用以下命令创建的: 如何跨文件创建对枚举定义的引用?