在 IntelliJ 中编辑 OpenAPI json 时正确验证引用文件
Proper validation of a referenced file when editing OpenAPI json in IntelliJ
我正在 IntelliJ 中编辑 OpenAPI JSON 规范。自动验证和代码完成工作非常好。
使用的 OpenAPI 版本是 3.0.3,IntelliJ 可以正确检测到。好像内部用了“openapi30.json”来验证,一切正常。
但是,文件变得非常大,是时候使用 $ref
.
将一些常用模型从中移出
这就是问题所在。主要规范如下所示(片段):
{
"openapi": "3.0.3",
"info": {
"title": "Cars REST API",
"description": "Calls, Responses and DTOs for REST",
"version": "1.0.0"
},
"components": {
"schemas": {
"car": {
"$ref": "car.json"
},
"car-group": {
"$ref": "car-group.json"
}
并且在编辑它时,IntelliJ 将其识别为“openapi30”。
但是,无法识别引用的文档。例如,car.json
文件如下所示:
{
"car": {
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"tag": {
"type": "string"
}
}
}
}
它被简单地识别为 JSON 文档,而不是 OpenAPI 文档,因此没有正确的验证和代码完成等。
如何告诉 IntelliJ 该文件是 OpenAPI 规范的 部分 ,要这样验证?人们应该认为这可以从主要规范的开始 $ref
中推断出来,但这不起作用。
尝试在引用文件中添加 $schema
值没有效果(而且可能不符合 OpenAPI 规范)。
为 car.json
手动选择 OpenAPI 3.0 文件类型没有帮助,因为验证(正确地)失败了 - 因为它没有所需的顶级结构(info
,openapi
, paths
).
也许需要在 IntelliJ 首选项中添加一些特定的 JSON 模式映射?如果是这样的话,它实际上是主要 OpenAPI 规范中的一个子模式或某个标记,那怎么办?
IntelliJ版本为:IntelliJ IDEA 2021.3.2(终极版)
如有任何帮助,我们将不胜感激。
罗恩!
尚不支持此类功能。请投票给https://youtrack.jetbrains.com/issue/IDEA-284305
我正在 IntelliJ 中编辑 OpenAPI JSON 规范。自动验证和代码完成工作非常好。
使用的 OpenAPI 版本是 3.0.3,IntelliJ 可以正确检测到。好像内部用了“openapi30.json”来验证,一切正常。
但是,文件变得非常大,是时候使用 $ref
.
这就是问题所在。主要规范如下所示(片段):
{
"openapi": "3.0.3",
"info": {
"title": "Cars REST API",
"description": "Calls, Responses and DTOs for REST",
"version": "1.0.0"
},
"components": {
"schemas": {
"car": {
"$ref": "car.json"
},
"car-group": {
"$ref": "car-group.json"
}
并且在编辑它时,IntelliJ 将其识别为“openapi30”。
但是,无法识别引用的文档。例如,car.json
文件如下所示:
{
"car": {
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"tag": {
"type": "string"
}
}
}
}
它被简单地识别为 JSON 文档,而不是 OpenAPI 文档,因此没有正确的验证和代码完成等。
如何告诉 IntelliJ 该文件是 OpenAPI 规范的 部分 ,要这样验证?人们应该认为这可以从主要规范的开始 $ref
中推断出来,但这不起作用。
尝试在引用文件中添加 $schema
值没有效果(而且可能不符合 OpenAPI 规范)。
为 car.json
手动选择 OpenAPI 3.0 文件类型没有帮助,因为验证(正确地)失败了 - 因为它没有所需的顶级结构(info
,openapi
, paths
).
也许需要在 IntelliJ 首选项中添加一些特定的 JSON 模式映射?如果是这样的话,它实际上是主要 OpenAPI 规范中的一个子模式或某个标记,那怎么办?
IntelliJ版本为:IntelliJ IDEA 2021.3.2(终极版)
如有任何帮助,我们将不胜感激。
罗恩!
尚不支持此类功能。请投票给https://youtrack.jetbrains.com/issue/IDEA-284305