Azure API-management 中单个阵列的多个阵列定义
Multiple array definitions for single array in Azure API-management
我创建了一个 returns 数组的项目。查看 swagger.json 一切正常,导入此 swagger.json 。但是当我从开发人员门户下载 API 定义时,我看到一些对象,例如...Array、...Array-1、...Array-2。我没想到:
我该如何防止这种情况发生?我怎样才能确保生成的行为与我的普通对象相同(所以没有破折号,而是点)。我创建了一个重现我的问题的示例项目:https://github.com/mvdiemen/SwaggerArrayGenerationExample.
这是否与此处描述的 Azure API 管理变化有关? : https://blog.tomkerkhove.be/2018/04/13/changes-to-azure-api-management-openapi/
APIM 不支持内联架构。尝试仅通过 $ref 为 response/request 指定模式,即使它是您已经定义的对象数组 - 定义一个数组类型的新对象并引用它。
所以,而不是像这样:
"200": {
"description": "Success",
"schema": {
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/SwaggerGenerationSample.Models.Response.Employee"
}
}
}
在定义中定义数组本身并引用它:
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/EmployeeArray"
}
}
...
"definitions": {
"EmployeeArray": {
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/SwaggerGenerationSample.Models.Response.Employee"
}
}
}
我创建了一个 returns 数组的项目。查看 swagger.json 一切正常,导入此 swagger.json 。但是当我从开发人员门户下载 API 定义时,我看到一些对象,例如...Array、...Array-1、...Array-2。我没想到:
我该如何防止这种情况发生?我怎样才能确保生成的行为与我的普通对象相同(所以没有破折号,而是点)。我创建了一个重现我的问题的示例项目:https://github.com/mvdiemen/SwaggerArrayGenerationExample.
这是否与此处描述的 Azure API 管理变化有关? : https://blog.tomkerkhove.be/2018/04/13/changes-to-azure-api-management-openapi/
APIM 不支持内联架构。尝试仅通过 $ref 为 response/request 指定模式,即使它是您已经定义的对象数组 - 定义一个数组类型的新对象并引用它。
所以,而不是像这样:
"200": {
"description": "Success",
"schema": {
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/SwaggerGenerationSample.Models.Response.Employee"
}
}
}
在定义中定义数组本身并引用它:
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/EmployeeArray"
}
}
...
"definitions": {
"EmployeeArray": {
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/SwaggerGenerationSample.Models.Response.Employee"
}
}
}