【发布时间】:2020-05-24 11:00:44
【问题描述】:
我声明了两种发布方法。一个用于保存一个对象,另一个用于保存列表。现在的问题是我应该为每个人提供什么路径才能避免出现典型错误:
原因:java.lang.IllegalStateException:不明确的映射。无法映射 我的控制器有以下 url,例如 /faults
这些是我的方法:
@PostMapping
public ResponseEntity<FaultDTO> save(@RequestBody FaultDTO faultDTO){...}
@PostMapping
public ResponseEntity<List<FaultDTO>> saveAll(@RequestBody ArrayList<FaultDTO> list){...}
这个api的正确写法是什么?
【问题讨论】:
-
不是 Spring REST 专家,但我假设控制器正在映射到某个 URI(如 /fault),并且您告诉它处理 FaultDTO 和 List
的 POST /fault)。答案是更改第二种方法的 URI,使它们具有不同的(例如,/faults 而不是 /fault)。 -
我想过那个案例,那它不会重复url吗?类似 /fault/faults 的东西。这是个好方法吗?
-
这个post 可能会有所帮助
-
作为一个简单的解决方案,您可以只使用第二种方法,如果需要,只将一个 DTO 传递到列表中。
标签: java spring rest spring-boot api