gpt4 book ai didi

asp.net-core - Swagger 将 IFormFile 参数列为类型 "object"

转载 作者:行者123 更新时间:2023-12-05 02:14:46 25 4
gpt4 key购买 nike

我有一个 Controller 请求一个包含 IFormFile 作为其属性之一的模型。对于请求描述,Swagger UI(我使用 Swashbuckle 和 OpenApi 3.0 for .NET Core)将文件属性的类型列为类型对象。有没有什么方法可以让 Swagger UI 表示准确的类型,并且它是 JSON 表示来帮助客户端?

请求模型的 Controller 如下所示。

[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

关于asp.net-core - Swagger 将 IFormFile 参数列为类型 "object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53058838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com