首页 > 解决方案 > 将 Net Core 2.0 API 迁移到 Net Core 3.1

问题描述

我正在将我的 ASP NET Core API 从 2.0 升级到 3.1,我需要将 swagger 升级到 5.0,这会带来很多变化。我坚持的是一个处理文件上传的控制器,早些时候


    public class FileUploadOperation : IOperationFilter
{
    public void Apply(Operation operation, OperationFilterContext context)
    {
        if (operation.OperationId.ToLower() == "apivaluesuploadpost")
        {
            operation.Parameters.Clear();
            operation.Parameters.Add(new NonBodyParameter
            {
                Name = "uploadedFile",
                In = "formData",
                Description = "Upload File",
                Required = true,
                Type = "file"
            });
            operation.Consumes.Add("multipart/form-data");
        }
    }
}

但是在更改之后引入了 OpenApiOperation 和 OpenApiParameters,这会改变很多事情,例如通过参数中的枚举替换字符串。我有一个需要文件的操作

public async Task<IActionResult> FileUp([FromForm(Name = "formFile")]IFormFile formFile)

现在 In new Parameters In 已更改为具有 Header,Path,Query,Cookie 的枚举类型,但它们对此操作都没有意义。有人可以在不改变 API 结构的情况下帮助解决这些更改吗?

标签: asp.net-coreasp.net-core-webapiswagger-codegen

解决方案


推荐阅读