JavaSpring:对不同的参数和返回值使用相同的请求映射

JavaSpring:对不同的参数和返回值使用相同的请求映射,java,spring,Java,Spring,我有两个电话。第一个将用户对象作为参数,映射到/login,并返回一个列表: @RequestMapping(value="/login", method = RequestMethod.POST) public ResponseEntity<List<Login>> login(@RequestBody User user) { return new ResponseEntity<List<Login>>(HttpStatus.OK);

我有两个电话。第一个将
用户
对象作为参数,映射到
/login
,并返回一个
列表

@RequestMapping(value="/login", method = RequestMethod.POST)
public ResponseEntity<List<Login>> login(@RequestBody User user) {
    return new ResponseEntity<List<Login>>(HttpStatus.OK);    
}
我觉得这不是一个好的设计,所以我想把它组合成一个请求映射

@RequestMapping(value={"/v1/login", "/v1/login/apitoken"}, method = RequestMethod.POST)

但我不知道如何继续,因为这两个端点具有不同的
RequestBody
和返回方法。有人知道如何将这两个请求映射组合成一个吗?或者旧函数足够好吗?

您当前的解决方案很好。如果它们做类似的事情,请将公共部分移到两者调用的方法中。细粒度请求映射的要点是,您不必编写决定使用哪种处理代码所需的所有if-this-then-that逻辑。如果你想制作一个方法,例如任何
对象
,你都会从这个开始。不同的响应类型可以,您可以让方法返回通配符
ResponseEntity
。@zapl感谢您的回复。我想说这两个函数没有两个非常相关但相似的端点,将来可能会向这两个函数添加一些相似的代码。在这种情况下,您认为只保留当前代码更好吗?是的,不同的方法应该包含不同的方法:)保持原样
@RequestMapping(value={"/v1/login", "/v1/login/apitoken"}, method = RequestMethod.POST)