I am using Kiota to generate an HTTP client within a shared project among multiple solutions. Everything is functioning as expected, except for one specific use case related to a POST resource. The resource and command are defined as follows:
[HttpPost]
public async Task<ActionResult> Post([FromForm] CreateUserCommand command)
=> Ok(await _mediator.Send(command));
The CreateUserCommand includes an IFormFileCollection for attachments:
public class CreateUserCommand : IRequest< bool>
{
public CreateUserCommand ()
{
}
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string Phone { get; set; }
public IFormFileCollection Attachements { get; set; } = new FormFileCollection();
}
Kiota generates the following method signature:
public async Task<Int32BooleanResultResponse?> PostAsync(MultipartBody body, Action<RequestBuilderPostRequestConfiguration>? requestConfiguration = default, CancellationToken cancellationToken = default)
Here is an example of how I attempted to construct the MultipartBody: so in my request i need to send the user informations with attachements file, does any one knows how to do it, i did not find anything in the documentation
var multipartBody = new MultipartBody();
multipartBody.AddOrReplacePart("email", "application/json", applyCommand.Email);
multipartBody.AddOrReplacePart("address", "application/json", applyCommand.Address);
multipartBody.AddOrReplacePart("firstName", "application/json", applyCommand.FirstName);
multipartBody.AddOrReplacePart("lastName", "application/json", applyCommand.LastName);
multipartBody.AddOrReplacePart("phone", "application/json", applyCommand.Phone);
Can anyone provide guidance on how to properly structure the request to send user information along with attachment files using Kiota? Any insights or examples would be greatly appreciated.
Here is how one can send both the properties AND the attachments within the same request for this backend/scenario.