小编ber*_*zoo的帖子

使用Swashbuckle Swagger上传文件

我有一个带有Swagger 3.0的ASP.NET Core 2应用程序,我想测试来自Swagger UI的文件上传的POST操作.

文件上传器控制器:

[ApiController]
public class FileUploadController : ApiControllerBase
{
    private readonly IFileUploader _fileUploader;

    public FileUploadController(IFileUploader fileUploader, ILogger<FileUploadController> logger) : base(logger)
    {
        _fileUploader = fileUploader;
    }

    [HttpPost]
    [Route(nameof(UploadFile))]
    public FileUploadResult UploadFile(IFormFile uploadedFile)
    {
        return _FileUploader.UploadFile(Request.Form.Files[0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

阅读Swagger文档和其他主题我发现我需要自定义IOperationFilter,所以这就是我提出的:

public class FileUploadOperationFilter : IOperationFilter
{
    public void Apply(Operation operation, OperationFilterContext context)
    {
        if (operation.OperationId.ToLower() == "apifileuploaduploadfilepost")
        {
            operation.Parameters.Add(new NonBodyParameter()
            {
                Name = "file",
                In = "formData",
                Description = "Upload File",
                Required = true,
                Type = "file"
            });
            operation.Consumes.Add("multipart/form-data"); …
Run Code Online (Sandbox Code Playgroud)

c# swagger asp.net-core

5
推荐指数
1
解决办法
1400
查看次数

标签 统计

asp.net-core ×1

c# ×1

swagger ×1