我已经开发了一个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
答案 0 :(得分:0)
您可以使用@RequestParam
类型的java.util.Map
来做到这一点。
在您的设计中,控制器方法中将有各种@PathVariable
参数,并且路径变量的顺序/{var1}/{var2}...
构造了url,所以我认为不可能跳过url中的path变量,并仍然调用相同的控制器方法。