我有一个控制器端点,我希望它既用于上传图像,也用于发送JSON有效负载.
我知道在Spring Boot中,您可以使用@RequestPart注释并将键/值对作为表单数据进行传递.我正在使用.Net核心,但很难测试向我的终结点发送请求.
我的模型类如下所示: CreateCompanyRequest.cs个
public class CreateCompanyRequest {
public string Name { get; set; }
public string Description { get; set; }
public CreateAddressRequest? Address { get; set; }
public int IndustryId { get; set; }
public int Size { get; set; }
public DateTime FoundedDate { get; set; }
}
我还有一个包装类,其中包含这个请求类,以及一个用于上传文件的IFormFile属性.
CreateCompanyMultipartRequest.cs个
public class CreateCompanyMultipartRequest {
[FromForm(Name = "company")]
public CreateCompanyRequest Company { get; set; }
[FromForm(Name = "avatar")]
public IFormFile Avatar { get; set; }
}
CompanyController.cs
[Authorize(Roles = "Recruiter")]
[HttpPost]
public async Task<IActionResult> CreateCompany([FromForm] CreateCompanyMultipartRequest request) {
var response = await _companyService.CreateCompany(request.Company, "john@gmail.com");
if (response != null && request.Avatar != null) {
await _documentService.UploadDocument(request.Avatar, DocumentType.AVATAR, "john@gmail.com", response.Id);
}
// Extra validation..
return Ok(new ApiResponse<CompanyResponse>() {
Data = response, Status = true
});
}
我try 在Postman中发送与请求类匹配的密钥为Avatar和Company的请求,但收到了此验证错误.
我为公司发送的数据是一个具有所需属性的JSON文件,也try 在Postman中将JSON作为文本类型发送.