如何根据JSON要求在Spring REST控制器中获取请求?
问题描述:
public ResponseEntity<TastyDashResponse> order(@PathVariable("restaurantId") String restaurantId,
@RequestBody RestaurantOrderBook request,
@RequestBody ExpItems exp) {}
我有两个Objects
RestaurantOrderBook
和ExpItems
。传入的请求应该有其中一个,另一个变为可选。如何根据JSON要求在Spring REST控制器中获取请求?
如何在同一方法内实现此目的。当这code
我得到404 bad request
。请帮助它。
答
您不能使用两个@RequestBody,因为它可以绑定到单个对象。 解决方案创建一个对象,将捕获这样这个所有培训相关数据:
public class Data {
private String restaurantId;
private RestaurantOrderBook request;
private ExpItems exp;
getters/setters
}
public ResponseEntity<TastyDashResponse> order(@RequestBody Data data) {}
+0
谢谢你的帮助。 –
+0
@NavaneethanArun欢迎任何时间 –
我想这个问题是在多个@RequestBody注解。为什么不把'RestaurantOrderBook'和'ExpItems'结合成一个DTO对象? – eparvan
如果请求中的参数是可选的,则可以将'@ PathVariable'更改为'@RequestParam(value =“restaurantId”,required = false)'。 – Sajjad
@eparvan谢谢 –