将缺少的URI变量映射到请求映射

时间:2019-04-19 04:59:35

标签: spring spring-rest

我已经开发了一个Spring API / getFileData,它可以接受三个URI参数。 businessDate / fileName / recordId。可以让它们中的任何一个作为null传递。但是我仍然希望我的API在这种情况下也能正常工作。我该如何实现?

对于所有可能的组合,我都尝试使用@GetMapping("getFileData/{businessDate}/{fileName}/{recordId}", "getFileData/{businessDate}//", "getFileData/{businessDate}/{fileName}/") .. so这样。

@RequestMapping(value = "/getFileData/{businessDate}/{fileName}/{recordId}", method = RequestMethod.GET)

如果某些内容遗漏,我希望此API适用于URI参数的所有组合。例如有人要求

/getFileData///22

/getFileData/22Dec2018/

/getFileData//treasure/22

1 个答案:

答案 0 :(得分:0)

您可以使用@RequestParam类型的java.util.Map来做到这一点。

在您的设计中,控制器方法中将有各种@PathVariable参数,并且路径变量的顺序/{var1}/{var2}...构造了url,所以我认为不可能跳过url中的path变量,并仍然调用相同的控制器方法。