我有一个控制器,它请求一个包含 IFormFile 作为其属性之一的模型。对于请求描述,Swagger UI(我使用 Swashbuckle 和 OpenApi 3.0 for .NET Core)将文件属性的类型列出为类型对象。有没有办法让 Swagger UI 表示确切的类型及其 JSON 表示形式来帮助客户端?
请求模型的控制器如下所示。
[HttpPost]
[Consumes("multipart/form-data")
public async Task<IActionResult> CreateSomethingAndUploadFile ([FromForm]RequestModel model)
{
// do something
}
模型定义如下:
public class AssetCreationModel
{
[Required}
public string Filename { get; set; }
[Required]
public IFormFile File { get; set; }
}
今天我们一直在探讨这个问题。如果将以下内容添加到启动中,它将把 IFormFile 转换为正确的类型
services.AddSwaggerGen(c => {
c.SchemaRegistryOptions.CustomTypeMappings.Add(typeof(IFormFile), () => new Schema() { Type = "file", Format = "binary"});
});
另请参阅以下关于.net core中文件上传的文章https://learn.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.1 https://learn.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)