知らないことを調べた結果を蓄積する

分類: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」が表示される。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます