我有一个带有swagger的ASP.net核心Web API(使用swashbuckle) .
Web API中的一个操作是文件上载操作:
[Produces("application/json")]
[Route("[controller]")]
public class FilesController : Controller
{
[HttpPost]
public void Post(IFormFile file)
{
...
}
}
当我在swagger UI中查找该动作时,让我填写 IFormFile
的所有字段,这不是我想要测试我的API .
So how can I add an upload button to the Swagger UI?
2 回答
首先添加一个使用multipart formdata的操作过滤器 .
现在您应该将您的操作添加到
_actionWithUpload
数组!请注意,我添加extesnions只是为了有一个重构友好的过滤器 .最后但并非最不重要的是,确保将操作过滤器添加到swagger的选项中 . 所以将
options.OperationFilter<FileUploadOperation>();
添加到你的swagger选项并完成 .完整示例:
除了@ Nick的回答,我还要为AspNet core 2进行2次更改 .
1]更新了GetOperationId()
现在所有的operationIds都包含API前缀以及后缀中的Method . 所以我在ActionName中静态添加了API和Post .
2]仅删除文件参数
我想删除文件参数,而不是删除该操作的所有参数 .