Я хочу получить информацию user
на основе идентификатора или электронного адреса. Ниже приведен класс контроллера, который я написал:
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserDao userDao;
@GetMapping(value = "/{id:\\d+}")
public User findOneById(@PathVariable("id") final Integer userId) {
return userDao.findById(userId).get();
}
@GetMapping(value = "/{email}")
public User findOneByEmail(@PathVariable("email") final String email) {
return userDao.findByEmail(email).get();
}
Код не работает и выдает ошибку
java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 'http://localhost:8080/users/12223': {public com.ofloy.persistence.model.User com.ofloy.rest.controller.UserController.findOneById(java.lang.Integer), public com.ofloy.persistence.model.User com.ofloy.rest.controller.UserController.findOneByEmail(java.lang.String)}
Я думал, что Regex решит эту проблему, но, к сожалению, это не так.
Причину ошибки я понял, но как справиться с таким требованием?