如何为接受对象列表中的文件列表的 API 端点创建 POST 和 form-data?
How to create a POST with form-data for an API endpoint that accepts a list of files inside a list of objects?
我正在尝试在邮递员中创建一个请求,以将文件上传到需要以下形状的 dotnet 核心端点:
public class MyDto
{
public DateTime Time { get; set; }
public List<Logs> Files { get; set; } = null!;
public class Logs
{
public ServiceEnum Service { get; set; }
public List<IFormFile> LogFiles { get; set; }
}
}
动作的函数签名:
[HttpPost("{id}/log")]
public async Task<ActionResult> SaveLogs([FromRoute] string id, [FromForm] MyDto myDto)
我的邮递员请求如下所示:
当我尝试调试时,我可以看到 myDto.Files[0].Service
已设置,myDto.Files[0].LogFiles
为空。
我原以为上传多个文件会从请求映射到 myDto.Files[0].LogFiles
。我可能错误地格式化了请求中的密钥,但此时我已经尝试了多种不同的密钥格式。
我用其他简单类型和复杂类型进行测试,它们可以使用方括号和post成功(IFormFile
除外)。也许这是邮递员的设计。无论如何,无论它是什么类型。你总是可以 post 喜欢 xx.xx.xx
.
更改您的 post 数据,如下所示:
我正在尝试在邮递员中创建一个请求,以将文件上传到需要以下形状的 dotnet 核心端点:
public class MyDto
{
public DateTime Time { get; set; }
public List<Logs> Files { get; set; } = null!;
public class Logs
{
public ServiceEnum Service { get; set; }
public List<IFormFile> LogFiles { get; set; }
}
}
动作的函数签名:
[HttpPost("{id}/log")]
public async Task<ActionResult> SaveLogs([FromRoute] string id, [FromForm] MyDto myDto)
我的邮递员请求如下所示:
当我尝试调试时,我可以看到 myDto.Files[0].Service
已设置,myDto.Files[0].LogFiles
为空。
我原以为上传多个文件会从请求映射到 myDto.Files[0].LogFiles
。我可能错误地格式化了请求中的密钥,但此时我已经尝试了多种不同的密钥格式。
我用其他简单类型和复杂类型进行测试,它们可以使用方括号和post成功(IFormFile
除外)。也许这是邮递员的设计。无论如何,无论它是什么类型。你总是可以 post 喜欢 xx.xx.xx
.
更改您的 post 数据,如下所示: