SpringBoot便利機能 – パラメータ受け取り

最近仕事でSpringBootに触れる機会があったので、便利だと思ったのを書いていこうと思います。

前提

以下のFORMを定義しておきます。

@Date(Lombok)いうアノテーションでSetter/Getterを実装しています。
SpringBootはアノテーションがかなり便利なので使っていきましょう!

GETメソッド

この状態でSpringBootを起動し、以下のアドレスを入力します。
http://localhost:8080/sample?hoge=%E3%83%89%E3%83%A9%E3%83%AA%E3%83%90&fuga=%E3%81%AE&piyo=%E5%82%99%E5%BF%98%E9%8C%B2
すると…

見事に受け取ってjsonで返してくれました。

SpringBootはDTOなどを返すだけでjsonに変換してくれるので非常にありがたいですね!

POSTメソッド – application/json

POSTメソッドのContent-Typeにapplication/jsonを指定するとこちらに来ます。
GETと同じく自動的にFORMへ格納してくれます。
GETと異なるのは主に@ModelAttributeだったところが@RequestBodyに変わったのが重要です。
@RequestBodyだとリクエストボディから値を取得してくれるようです。

POSTメソッド – application/x-www-form-urlencoded

主にHTMLのFORMタグで送信される際に使われますね。

MultiValueMapというのは一つのキーで複数の値を保持できるマップのようです。
基本的に一個であればgetFirstメソッドで十分ですね。

リクエストヘッダ

リクエストヘッダはDTOに変換する仕組みはないみたいですね。

他にも使えそうなのがあり次第追記していこうかと思います。

まとめ

  • GETメソッドは@ModelAttribute
  • POSTメソッドは@RequestBody
  • ヘッダは@RequestHeader