Springでのパラメータの取得
Spring Bootのフレームワークでクライアントからのパラメターを取得するには下記2つの方法があります。
- GETメソッドの場合は@ModelAttribute
- POSTメソッドの場合は@RequestBody
以下使い方です。Kotlinで書いているのでKotlinを導入する場合は下記を参照してください。
関連記事:EclipseでSpring BootとKotlinの環境構築
@RestController @RequestMapping("/user") class UserController @Autowired constructor(private val userDao: UserDao) { /** * ユーザーを取得 * * @param request リクエストパラメータクラス * @return ユーザー */ @GetMapping fun getUser(@ModelAttribute request: GetUserRequest): GetUserResponse { return userDao.getById(request.userId) } /** * ユーザー名を更新 * * @param request リクエストパラメータクラス * @return 更新結果 */ @RequestMapping(value = "/update_name", method = arrayOf(RequestMethod.POST)) fun updateUserName(@RequestBody request: PostUserNameRequest): PostUserNameResponse { return userDao.updateNameById(request.userId, request.name) } }
パラメータを受け取るクラスは下記のようにしています。
class GetUserRequest ( var userId: Int = 0 ) class PostUserNameRequest ( var userId: Int = 0, var name: String = "", )
@GetMappingが付いた関数はGETメソッドとなり、クラス定義の上に書いてあるRequestMappingのパスに対して対応しています。クライアントから送られてくるGETパラメータを@ModelAttributeを指定することで受け取っています。
/user_nameはPOSTメソッドとして定義していて送られてくるbodyのデータを@RequstBodyを指定することで受け取っています。
このように@ModelAttributeと@RequestBodyをそれぞれ設定することでクライアントから送られてくるパラメータを取得できます。
合わせて読みたい
おすすめ書籍
JPAに関して体系的に学べる良い書籍だと思います。良くあるSpring系書籍ですとJPAは少ししか紹介がありませんが丸々一冊JPAに関してなので詳細な解説がされています。内容はJPAと他のORMとの比較から始まりセットアップ、実装の仕方まで幅広く網羅されています。これからJPAで開発を初めてみようかなと考えている方は一読することをオススメします!
Springの概要からインストール方法、各コア機能(Security, Sessionなど)の解説が体系的にまとめられています。2018年に出版されたばかりなので情報も新しいです。これからSpring Bootでアプリケーション開発をしたい方の最初に読む一冊としておすすめします。対象は初心者だけでなく上級者まで幅広く学べるので是非読んでみてください!
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す