Swagger Schema 错误不应该有额外的属性
Swagger Schema error should NOT have additional properties
我正在尝试制作 swagger json 并尝试检查它的有效性
http://editor.swagger.io
验证 json 后,上述编辑器给出以下错误:
Schema error should NOT have additional properties
additionalProperty: components
Jump to line 0
如果由于某种原因我无法在根级别定义一个名为 components 的元素,我将在其中拥有某种 json 模式,那么在该模式上执行 $ref 的正确方法是什么对于 API 操作的 requestBody,正如我打算在下面的示例中看到的那样。另外,你看我的招摇有什么问题吗json?
我对 swagger2.0 的 swagger json 看起来像这样。
{
"swagger": "2.0",
"info": {
"version": "1.0",
"title": "My swagger API",
"contact": {
"name": "myName",
"email": "abc@gmail.com"
}
},
"host": "localhost:1234",
"basePath": "/",
"tags": [{
"name": "someTagName",
"description": "this is a try"
}],
"components":{"schemas": {"myEndPoint": ""}},
"paths": {
"/myEndPoint": {
"post": {
"tags": ["some-tag"],
"summary": "myEndPoint endpoint will give you something",
"description": "some description will go here",
"operationId": "getMyEndPoint",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [{
"in": "body",
"name": "somePayload",
"description": "somePayload is what this is",
"required": true,
"schema": {
"$ref": "#components/schemas/myEndPoint"
}
},
{
"in": "header",
"name": "Authorization",
"description": "auth token goes here",
"required": true,
"type": "string"
}],
"responses": {
"200": {
"description": "Success",
"schema": {
"type": "string"
}
},
"400": {
"description": "Bad Request"
}
}
}
}
}
}
您混淆了 OpenAPI 3.0 和 2.0 语法。 components
关键字用于 OpenAPI 3.0。在 OpenAPI/Swagger 2.0 中,可重用模式位于 definitions
:
"definitions": {
"myEndPoint": {
...
}
}
确保也将 $ref
更改为
"$ref": "#/definitions/myEndPoint"
我正在尝试制作 swagger json 并尝试检查它的有效性 http://editor.swagger.io
验证 json 后,上述编辑器给出以下错误:
Schema error should NOT have additional properties
additionalProperty: components
Jump to line 0
如果由于某种原因我无法在根级别定义一个名为 components 的元素,我将在其中拥有某种 json 模式,那么在该模式上执行 $ref 的正确方法是什么对于 API 操作的 requestBody,正如我打算在下面的示例中看到的那样。另外,你看我的招摇有什么问题吗json?
我对 swagger2.0 的 swagger json 看起来像这样。
{
"swagger": "2.0",
"info": {
"version": "1.0",
"title": "My swagger API",
"contact": {
"name": "myName",
"email": "abc@gmail.com"
}
},
"host": "localhost:1234",
"basePath": "/",
"tags": [{
"name": "someTagName",
"description": "this is a try"
}],
"components":{"schemas": {"myEndPoint": ""}},
"paths": {
"/myEndPoint": {
"post": {
"tags": ["some-tag"],
"summary": "myEndPoint endpoint will give you something",
"description": "some description will go here",
"operationId": "getMyEndPoint",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [{
"in": "body",
"name": "somePayload",
"description": "somePayload is what this is",
"required": true,
"schema": {
"$ref": "#components/schemas/myEndPoint"
}
},
{
"in": "header",
"name": "Authorization",
"description": "auth token goes here",
"required": true,
"type": "string"
}],
"responses": {
"200": {
"description": "Success",
"schema": {
"type": "string"
}
},
"400": {
"description": "Bad Request"
}
}
}
}
}
}
您混淆了 OpenAPI 3.0 和 2.0 语法。 components
关键字用于 OpenAPI 3.0。在 OpenAPI/Swagger 2.0 中,可重用模式位于 definitions
:
"definitions": {
"myEndPoint": {
...
}
}
确保也将 $ref
更改为
"$ref": "#/definitions/myEndPoint"