我的Spring RestController中有以下方法:

@RequestMapping(value = "/{decisionId}", method = RequestMethod.GET)
    public DecisionResponse findById(@PathVariable @NotNull @DecimalMin("0") Long decisionId) {
....
}


现在,我需要添加通过{decisionIds}找到一组DecisionResponse的可能性。

@RequestMapping(value = "/{decisionIds}", method = RequestMethod.GET)
    public List<DecisionResponse> findByIds(@PathVariable @NotNull @DecimalMin("0") Set<Long> decisionIds) {
....
}


以下两种方法不能一起使用。

实现此功能的正确方法是什么?我是否应该只留下一个等待第二个{decisionIds}并返回一个集合的方法(第二个),即使我只需要一个Decision对象也是如此?还有另一种合适的方法来实现这一目标吗?

最佳答案

您可以为发送单个long值以及long值数组创建单个端点:

@RequestMapping(value = "/{decisionIds}", method = RequestMethod.GET)
    public List<DecisionResponse> findByIds(@PathVariable @NotNull @DecimalMin("0") Set<Long> decisionIds) {
          System.out.println(decisionIds);
}


并通过发送如下路径变量来调用此端点:


http://localhost:8080/11,12,113,14

07-24 21:39