在使用Swashbuckle上传文件的时候,在接口文档中希望看到上传控件,但是C#中,没有FromBodyAttribute这个特性,所以需要在运行时,修改参数的swagger属性。
首先看下,最终效果:
下面介绍实现。
实现原理,通过swagger提供的filter,找到action中带有SwaggerFileUpload特性的参数,然后给swagger operaion.parameters添加一个自定义的参数,即文件类型参数即可。
(1)定义SwaggerFileUploadAttribute。
[AttributeUsage(AttributeTargets.Parameter)] public class SwaggerFileUploadAttribute : Attribute { public bool Required { get; private set; } public SwaggerFileUploadAttribute(bool Required = true) { this.Required = Required; } }