@RestController
@RequestMapping(value = "/players")
public class REST {
@RequestMapping(method = RequestMethod.GET)
public List<Player> getAll() {
return service.getAll();
}
@RequestMapping(method = RequestMethod.GET, params = {"team", "score"})
public List<Player> getByPlayerAndScore(@RequestParam(value = "team") String team,
@RequestParam(value = "score", required = false) int score) {
return service.getByPlayerAndScore(team, score);
}
}
Q1 : 나는 URL의 (? "팀 = XYZ/플레이어를위한"작업 URL (예상대로 일했다) "/ 플레이어"와 두 번째 방법 작동하는 첫 번째 방법을 기대하고, "/ players? team = xyz & 점수 = 1000"). "/ players? team = xyz"에 대한 스프링 사용 방법 1. 선택 사항으로 점수를 지정해도, 2 개의 매개 변수를 지정하지 않으면 봄은 두 번째 방법을 사용하지 않습니다. 이 문제를 해결하는 방법과 사용자가 사용 가능한 다른 매개 변수 세트 (예 : param1 & param2, param1 만, param2 만)를 보낼 수있는 이러한 유형의 요청을 처리하는 컨트롤러 메서드를 작성하는 가장 좋은 방법은 무엇입니까?봄 REST @RequestMapping은 실천
Q2 : 다른 매개 변수 집합을 사용하는 두 번째 유형의 쿼리의 경우 DAO 계층에서 데이터베이스 쿼리를 작성하는 방법. 내가 다른 쿼리 또는 사용자가 '점수'DB 쿼리에 추가 ... DB를 쿼리에 팀을 추가하는 경우 사용자가 보낸 '팀')와 같은 다른 쿼리 또는 하나의 방법으로 각각의 방법을 써야합니다
두 번째 매핑에서 required = false를 지정했습니다. –
@LokeshCherukuri 요청 매핑이 아닌 * 매개 변수 * 바인딩에 배치했습니다. 답변을 업데이트했습니다. – chrylis