zoukankan      html  css  js  c++  java
  • Swagger添加文件上传测试

    先上对比图 图一无法选择文件,图二可以选择文件

    图一

    图二

    添加过滤器

    public class SwaggerFileUploadFilter : IOperationFilter
        {
    
            /// <summary>
            /// swagger过滤器(此处的Apply会被swagger的每个接口都调用生成文档说明,所以在此处可以对每一个接口进行过滤操作)
            /// </summary>
            /// <param name="operation"></param>
            /// <param name="context"></param>
            public void Apply(Operation operation, OperationFilterContext context)
            {
                if (!context.ApiDescription.HttpMethod.Equals("POST", StringComparison.OrdinalIgnoreCase) &&
                !context.ApiDescription.HttpMethod.Equals("PUT", StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }
                var apiDescription = context.ApiDescription;
                var parameters = context.ApiDescription.ParameterDescriptions.Where(n => n.Type == typeof(IFormFileCollection) || n.Type == typeof(IFormFile)).ToList();//parameterDescriptions包含了每个接口所带所有参数信息
                if (parameters.Count() <= 0)
                {
                    return;
                }
                operation.Consumes.Add("multipart/form-data");
                foreach (var fileParameter in parameters)
                {
                    var parameter = operation.Parameters.Single(n => n.Name == fileParameter.Name);
                    operation.Parameters.Remove(parameter);
                    operation.Parameters.Add(new NonBodyParameter
                    {
                        Name = parameter.Name,
                        In = "formData",
                        Description = parameter.Description,
                        Required = parameter.Required,
                        Type = "file",
                        CollectionFormat = "multi"
                    });
                }
            }
        }
    

      注册swagger服务

    创建方法

  • 相关阅读:
    Objective-C语言的对象、功能和方法
    【Swift语言】可选类型
    静态库调用中“unrecognized selector sent to instance”错误
    Xcode的坑
    Xcode6中变量初始化的问题
    iOS数据存储的方式总结
    KVO
    linux一些工具的安装(三)
    linux一些工具的安装(二)
    linux的基本操作(一)
  • 原文地址:https://www.cnblogs.com/Justsoso-WYH/p/10537980.html
Copyright © 2011-2022 走看看