Как использовать FromForm с Refit (dotnet)C#

Место общения программистов C#
Anonymous
Как использовать FromForm с Refit (dotnet)

Сообщение Anonymous »

Я работаю над веб-API, разработанным в .net 7. Существует конечная точка, которая получает [FromForm] для объекта, содержащего IFormFile, перечисление, и строку.
Конечная точка работает как положено, я могу отправлять файлы и заполнять всю необходимую информацию с помощью Swagger.
Проблема связана с клиентом Refit. Я уже пробовал два разных подхода, но всегда получаю исключение NotFound.
Вот пример кода, который я использовал.
// FilesController
[HttpPost("/files", Name = nameof(UploadFile))]
public async Task UploadFile(
[FromForm] UploadFileRequest request, CancellationToken cancellationToken)
{
// code
}

// FileRequest
public record UploadFileRequest
{
public required IFormFile File { get; set; }
public required FilePurpose Type { get; set; }
public required string Description { get; set; }
}

public enum FilePurpose{
Input,
Output
}

В разделе «Переоборудование» я попробовал две попытки:
// Попытка 1
[Multipart]
[Post("/files")]
Task UploadFile(
UploadFileRequestRefit request,
CancellationToken cancellationToken = default);

public record UploadFileRequestRefit
{
public required MultipartItem File { get; set; }
public required FilePurpose Type { get; set; }
public required string Description { get; set; }
}

// Попытка 2
[Multipart]
[Post("/files")]
Task UploadFile(
[AliasAs("file")] MultipartItem file,
[AliasAs("type")] FilePurpose type,
[AliasAs("description")] string description,
CancellationToken cancellationToken = default);


Подробнее здесь: https://stackoverflow.com/questions/783 ... fit-dotnet

Вернуться в «C#»