将 formData 从 swagger json 导入 AWS API 网关时出错

Error while importing formData from swagger json to AWS API Gateway

我正在使用 flask-restx 构建带有 swagger 的应用程序 UI,我试图将此 swagger 文件作为文档部分上传到 AWS API Gateway。通过这种招摇 UI,我使用户能够上传 CSV 文件以进行进一步的数据处理。

我有以下 swagger json:

{
    "swagger": "2.0",
    "basePath": "/",
    "paths": {
        "/upload_profile/csv": {
            "post": {
                "responses": {
                    "200": {
                        "description": "Profile uploaded"
                    },
                    "400": {
                        "description": "Validation Error"
                    },
                    "401": {
                        "description": "Not authorized"
                    }
                },
                "operationId": "Get uploaded profiles from user",
                "parameters": [
                    {
                        "name": "csv_file",
                        "in": "formData",
                        "type": "file",
                        "required": true,
                        "description": "CSV file"
                    }
                ],
                "consumes": [
                    "multipart/form-data"
                ],
                "tags": [
                    "upload_profile"
                ]
            }
        }
    },
    "info": {
        "title": "Upload Profile",
        "version": "0.0.1"
    },
    "produces": [
        "application/json"
    ],
    "consumes": [
        "application/json"
    ],
    "tags": [
        {
            "name": "upload_profile",
            "description": "Uploading User Profiles"
        }
    ],
    "responses": {
        "ParseError": {
            "description": "When a mask can't be parsed"
        },
        "MaskError": {
            "description": "When any error occurs on mask"
        }
    }
}

当我转到 API 网关 --> 文档 --> 导入文档并粘贴 json 时,出现以下错误:

如何解决以下问题?如果 API Gateway 不支持 formData,是否有替代方案来托管 swagger UI?

问题是 AWS API 网关需要 swagger/OpenAPI 版本 3,而您的文件是版本 2。如果您只想为 [=16] 托管 swagger UI =] 目的,看看 SwaggerHub https://swagger.io/tools/swaggerhub/.

但是,如果您真的必须使用 AWS API 网关,那么您需要获取 OpenAPI-3 格式的规范。由于 API 相当小,我建议您自己准备 OpenAPI-3 规范(而不是生成它)并通过 swagger UI.

在本地进行测试