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"
        }
    }
}