获得 "Cannot read property 'parameters' of null" 的 swagger 规范
Getting "Cannot read property 'parameters' of null" for swagger spec
我有以下 JSON 是我自己从代码生成的。我基本上是在编写代码来为 UI 生成 swagger 规范。我正在写一个新的,因为我仍然使用 play 1.3 并且它的 swagger 模块已经有一段时间没有更新了。然而,我从我的代码生成器得到了这个 JSON,但是 UI 挂在 "fetching resource list: http://localhost:9100/resources.json; Please wait." javascript 控制台显示错误 "Getting "无法读取 属性 'parameters' of null" for swagger spec".我不知道这是怎么回事,我们将不胜感激。
{
"swagger": "2.0",
"info": null,
"host": null,
"basePath": null,
"tags": [
{
"name": "payments",
"description": null,
"externalDocs": null
}
],
"schemes": null,
"consumes": null,
"produces": null,
"paths": {
"/": {
"get": {
"tags": [
"payments"
],
"summary": "/payment_methods",
"description": "",
"operationId": "paymentMethods",
"schemes": null,
"consumes": null,
"produces": [
"application/json"
],
"parameters": [],
"responses": {
"default": {
"description": "successful operation",
"schema": null,
"examples": null,
"headers": null
}
},
"security": null,
"externalDocs": null,
"deprecated": null
},
"head": null,
"post": {
"tags": [
"payments"
],
"summary": null,
"description": null,
"operationId": "addPaypalAccount",
"schemes": null,
"consumes": null,
"produces": null,
"parameters": [],
"responses": {
"default": {
"description": "successful operation",
"schema": null,
"examples": null,
"headers": null
}
},
"security": null,
"externalDocs": null,
"deprecated": null
},
"put": null,
"delete": {
"tags": [
"payments"
],
"summary": null,
"description": null,
"operationId": "deletePaypalAccount",
"schemes": null,
"consumes": null,
"produces": null,
"parameters": [],
"responses": {
"default": {
"description": "successful operation",
"schema": null,
"examples": null,
"headers": null
}
},
"security": null,
"externalDocs": null,
"deprecated": null
},
"options": null,
"patch": null,
"parameters": null
}
},
"securityDefinitions": null,
"definitions": null,
"parameters": null,
"responses": null,
"externalDocs": null,
"securityRequirement": null
}
问题是 null
值。它们需要被禁用——null 不同于 "not present"。也就是说,我相信您需要将映射器配置为不写入空值。
我遇到了这个问题,结果证明它与我的 .NET web api 应用程序中的 JSON 格式化程序有关。我能够通过将此行添加到 BootStrap class 配置方法来解决它。
config.Formatters.Clear();
我有以下 JSON 是我自己从代码生成的。我基本上是在编写代码来为 UI 生成 swagger 规范。我正在写一个新的,因为我仍然使用 play 1.3 并且它的 swagger 模块已经有一段时间没有更新了。然而,我从我的代码生成器得到了这个 JSON,但是 UI 挂在 "fetching resource list: http://localhost:9100/resources.json; Please wait." javascript 控制台显示错误 "Getting "无法读取 属性 'parameters' of null" for swagger spec".我不知道这是怎么回事,我们将不胜感激。
{
"swagger": "2.0",
"info": null,
"host": null,
"basePath": null,
"tags": [
{
"name": "payments",
"description": null,
"externalDocs": null
}
],
"schemes": null,
"consumes": null,
"produces": null,
"paths": {
"/": {
"get": {
"tags": [
"payments"
],
"summary": "/payment_methods",
"description": "",
"operationId": "paymentMethods",
"schemes": null,
"consumes": null,
"produces": [
"application/json"
],
"parameters": [],
"responses": {
"default": {
"description": "successful operation",
"schema": null,
"examples": null,
"headers": null
}
},
"security": null,
"externalDocs": null,
"deprecated": null
},
"head": null,
"post": {
"tags": [
"payments"
],
"summary": null,
"description": null,
"operationId": "addPaypalAccount",
"schemes": null,
"consumes": null,
"produces": null,
"parameters": [],
"responses": {
"default": {
"description": "successful operation",
"schema": null,
"examples": null,
"headers": null
}
},
"security": null,
"externalDocs": null,
"deprecated": null
},
"put": null,
"delete": {
"tags": [
"payments"
],
"summary": null,
"description": null,
"operationId": "deletePaypalAccount",
"schemes": null,
"consumes": null,
"produces": null,
"parameters": [],
"responses": {
"default": {
"description": "successful operation",
"schema": null,
"examples": null,
"headers": null
}
},
"security": null,
"externalDocs": null,
"deprecated": null
},
"options": null,
"patch": null,
"parameters": null
}
},
"securityDefinitions": null,
"definitions": null,
"parameters": null,
"responses": null,
"externalDocs": null,
"securityRequirement": null
}
问题是 null
值。它们需要被禁用——null 不同于 "not present"。也就是说,我相信您需要将映射器配置为不写入空值。
我遇到了这个问题,结果证明它与我的 .NET web api 应用程序中的 JSON 格式化程序有关。我能够通过将此行添加到 BootStrap class 配置方法来解决它。
config.Formatters.Clear();