【发布时间】:2021-03-28 12:12:32
【问题描述】:
我有一个标准的 Controller 方法来响应 /products 路由中的 POST 请求:
@PostMapping(value = "/products")
public ResponseEntity<ResponseMessage> postProduct(@RequestBody ProductUpsertRequestBody postRequest)
{
.
.
.
ProductUpsertRequestBody 只是我用来捕获 JSON 有效负载的一个简单类:
public class ProductUpsertRequestBody implements Serializable
{
@JsonProperty("id") private String clientProductId;
@JsonProperty("product_name") private String productName;
@JsonProperty("product_type") private String productType;
@JsonProperty("cost_in_cents") private Long costInCents;
@JsonProperty("description") private String description;
@JsonProperty("label_color") private String labelColor;
.
.
.
我需要使用MultiPartFile 参数扩展我的控制器方法,将其转换为:
@PostMapping(value = "/products")
public ResponseEntity<ResponseMessage> postProduct(@RequestBody ProductUpsertRequestBody postRequest, @RequestParam MultiPartFile myImage)
{
.
.
.
但我对如何调用此控制器方法感到困惑。使用 HTML 表单制作一个基本的前端并不难,它可以上传尽可能多的图像,但是我失去了发送 JSON 有效负载的能力(它是一个 REST API,我通过 Swagger 2.9 发送请求,邮递员,有效地curl 调用)。如何将二进制图像上传与 JSON 有效负载结合起来,以便我的控制器可以捕获它?也许同样重要的是,我有没有办法通过 Swagger 或 Postman 执行此操作,以便我可以对我的 API 进行端到端测试?
【问题讨论】:
标签: java json spring-boot rest multipart