フリーランスエンジニア→法人化した人の技術ブログ。フリーランス事情や会社の作り方、経営などについても徒然なるままに書いていきます。主な使用言語はRuby、JavaScript。

Permanent Til

java プログラミング

Spring Controllerの@PathVariableと@RequestParamの使い分け

更新日:


前回の記事で、POST処理をさばくためによく使う@RequestBodyと@ModelAttributeについて書きました。

今回はGETリクエストをさばくのに使う@PathVariableと@RequestParamの使い分けについて説明します。

@PathVariable

/api/get/1
のように、REST形式のURIからパラメータを取るのに利用します。


	@RequestMapping("/getMsg/{userId}")
	public List<MessageDto> getMessages(@PathVariable("userId") String userId) {
		return messageService.getMessage(userId);
	}

@RequestMappingアノテーションで指定するurlのうち、{val}で指定したものを@PathVariable("val")で取得します。

@RequestParam

?someId=1
のように、文字通りリクエストパラメータを取るのに利用します。


	@RequestMapping("/getMsg/info")
	public List<MessageDto> getMessages(@RequestParam("userId") String userId) {
		return messageService.getMessage(userId);
	}

/path/getMsg/info?userId=hoge
などというurlに対して、@RequestParamでパラメータを取得できます。

どちらを使うか(REST形式にするかリクエストパラメータ形式にするか)はお好みですが、どちらか一方に寄せるのがオススメです。
両方あると、「このGETはRESTなのかリクエストパラメータなのかどっちだろう?」って感じで使う側が混乱しちゃいますしね。


-java, プログラミング

Copyright© Permanent Til , 2019 All Rights Reserved Powered by AFFINGER5.