在开发Web API的过程中,我们常常借助Swagger进行接口的测试,本文将演示如何配置使用Swagger上传文件至Web API
Controller
首先,我们在Controller层添加代码:
此时,我们打开Swagger,发现IFormFile对应的文件输入域是一个文本框,很明显我们无法将一个文件上传到这个文本框里,而是期望借助文件上传控件来上传文件,因此,就需要自定义IOperationFilter
IOperationFilter
此处Filter将查找OperationId为”apifileuploadpost”(OperationId 的格式为[routeurl]+[httpverb]),它将清除IFormFile的属性接口,并添加一个文件上传控件,需要注意的是其中Name须与原来的参数名相同,In须为formData并且Type须为file,最后,需要添加一个新的consumes type为”application/form-data”
最后,将FileOperation注册到Swagger中,在Startup类中的ConfigureServices方法中,添加:
此时,文本输入框已转换为文件输入控件,就可以方便的进行文件上传了