★ はじめに
環境構築メモにJavaのバージョンを書き忘れました。Java8になります。
こちらの記事も自分用のメモになります。
★ HelloWorld
最初なのでまず、画面に「HelloWorld」を表示させることから試してみます。
パッケージ構成は以下のようにしました。
SampleProjectApplication.javaと同じ階層にアプリケーション層としてapp
を作成。
さらにその下にcontroller
を作成しています。
package com.example.sample.app.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("api/sample")
public class RestApiController {
@RequestMapping(value = "/hello")
public String index() {
return "Hello World!";
}
}
プロジェクトを右クリック ⇒ [実行(R)]
⇒ [4 Spring Boot アプリケーション]
の順に選択。
コンソールにログが出力されます。
http://localhost:8080/api/sample/hello
にアクセスします。
無事表示されました。
@RequestMapping
の()内の記載ですが、value
を省略したり、path
と記載してもOKみたいですね。
★ HTTPメソッドの実装
HTTPメソッドがGETで、投げると誕生日石(月、名前、色)の情報を返却するメソッドを実装します。
@RequestMapping
のRequestMethod
はGET
を指定します。
package com.example.sample.app.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.example.sample.app.resource.BirthStone;
@RestController
@RequestMapping("api/sample")
public class RestApiController {
@RequestMapping(value = "/getBirthStone", method = RequestMethod.GET)
@ResponseBody
public BirthStone getBirthStone() {
BirthStone birthStone = new BirthStone("2月", "アメジスト", "紫");
return birthStone;
}
}
app
の下にresource
を作成し、誕生日石の情報を返却するためにBirthStoneクラス
を作成します。
package com.example.sample.app.resource;
import java.io.Serializable;
public class BirthStone implements Serializable {
private static final long serialVersionUID = 1L;
/** 月 */
private String month;
/** 名前 */
private String name;
/** 色 */
private String color;
public BirthStone (String month, String name, String color) {
this.month = month;
this.name = name;
this.color = color;
}
// getter/setter記載略
}
Advanced REST ClientでAPIを呼び出した結果。
レスポンスが得られました。
HTTPメソッドがPOST
の場合は、RequestMethod=POST
と記述します。