分類:Spring Boot(V1.4.3.RELEASE)
概要:get メッセージを処理
環境:Eclipse
ブラウザ:Chrom
コントローラークラスを作る。
パッケージはわかりやすいように、jp.co.hoge.controller かなんかにする。
クラス名もコントローラーとわかるように 『
hogecontroller』とか
クラスの宣言の上に
「@Controller」か
「@RestController」アノテーションを付ける。
※@Controller 時は主に
Webページ用。戻り値はString型で遷移先の
URLを指定する必要がある
@Controller
public class webpageController{}
※@RestController は
WebAPI用。戻り値はJsonやXML等のコンテンツ
@RestController
public class webapiController{}
※用途によって使い分けるべし!!もっと詳しく知りたいのなら、
こちらを参照。まとめてありありがたや。
作成したクラスの中に、処理するメソッドを追加していくが、URLと呼び出されるメソッドのマッピング(紐づけ)行う。
マッピングには
「@RequestMapping」アノテーションを用いる。
パラメータでもろもろ設定をする。
・「path」パラメータ
どのメッセージを処理するかを指定する。サイトルート以下のパスを記載。
全体のパスが「http:://hoge.co.jp/hogehoge/test.html」でサイトルートが「
http://hoge.co.jp/hogehoge」であれば
「path="/test"」と指定する。
呼び出しURLの例
@Controller :http:://hoge.co.jp/hogehoge/test.html?abc=エービーシー
@RestController:http:://hoge.co.jp/hogehoge/test?abc=エービーシー
・「method」パラメータ
処理する要求方法を指定する。GetかPost。未指定であれば「Get」の呼び出し処理と判断される。
「method=RequestMethod.要求方法」と指定する。
要求方法には「GET」か「POST」が入る。
要求時に付与されるパラメータは、メソッドの引数で受け取る
引数で「@RequestParam("
パラメータ名")
引数型 引数名」と指定する。
例えば、パラメータ名が「test」で文字列が渡されるとすると、
@RequestParam("test") String test
とする、複数パラメータがある場合は、「,」で区切って必要数分記述する。
PATH について補足。
同じ「aaa」の下にある処理[aaa/test1」「aaa/test2」がある場合、
クラスの上に「@RequestMapping("/aaa")」と宣言しておけば、
メソッドに付ける「@RequestMapping」では「/aaa」を省略して「@RequestMapping(path="test1")」と「/aaa」以下の指定で記述できる。
ローカルホストでルートが「Escrow」で指定があり、「/api/seller/AccountInfo」APIをGETで文字列パラメータ「aaa」で呼び出される処理は
○呼び出し側(GETの場合)
http://localhost:8080/Escrow/api/seller/AccountInfo?aaa=parameter
○受取側
package jp.co.swaa.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class ApiController {
private static final Logger log = LoggerFactory.getLogger(ApiController.class);
@RequestMapping("/seller/AcountInfo")
public String AccountInfo(@RequestParam("aaa") String abcd) {
log.info("Call API /seller/AccountInfo"+abcd);
return "top";
}
}
画面には、戻り値で返した「top」が表示される。