@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(期待通りに働いていた)「/選手を」第2の方法のために働くために第一の方法を期待してい、 "/ players?team = xyz & score = 1000")。 "/ players?team = xyz"の春使用方法1です。私は2つのパラメータを指定しない限り、私はオプションとしてスコアを指定しても、春は2番目の方法を使用していません。これを解決する方法と、ユーザーが利用可能なパラメータの異なるセット(param1 & param2、param1のみ、param2のみなど)を送信できる、これらのタイプのリクエストを処理するコントローラメソッドを作成する最良の方法は何か。春REST @RequestMappingは練習
Q2: DAOレイヤでデータベースクエリを書き込む方法については、さまざまなパラメータセットを使用した2番目の種類のクエリについては、私は別のクエリを別々のメソッドまたは複数のifステートメントを持つ1つのメソッドを書く必要があります(ユーザーが 'チーム'をDBクエリに追加した場合、ユーザーが 'スコア'をDBクエリに追加した場合)...)
2番目のマッピングでrequired = falseを指定しました。 –
@LokeshCherukuriリクエストマッピングではなく、* parameter * bindingsに配置しました。答えを更新しました。 – chrylis