如何根据JSON要求在Spring REST控制器中获取请求?

问题描述:

public ResponseEntity<TastyDashResponse> order(@PathVariable("restaurantId") String restaurantId, 
                 @RequestBody RestaurantOrderBook request, 
                 @RequestBody ExpItems exp) {} 

我有两个ObjectsRestaurantOrderBookExpItems。传入的请求应该有其中一个,另一个变为可选。如何根据JSON要求在Spring REST控制器中获取请求?

如何在同一方法内实现此目的。当这code我得到404 bad request。请帮助它。

+0

我想这个问题是在多个@RequestBody注解。为什么不把'RestaurantOrderBook'和'ExpItems'结合成一个DTO对象? – eparvan

+0

如果请求中的参数是可选的,则可以将'@ PathVariable'更改为'@RequestParam(value =“restaurantId”,required = false)'。 – Sajjad

+0

@eparvan谢谢 –

您不能使用两个@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欢迎任何时间 –