//HelloController.java
package org.example;
// GETメソッドに対応するリクエストを扱うためのアノテーション
import org.springframework.web.bind.annotation.GetMapping;
//HTTPリクエストを受けてデータを返すクラスにつけるアノテーション
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello") //ブラウザで/helloにアクセスしたらこのメソッドを呼ぶ
public String hello() { //文字列を返すので、Stringと定義
return "Hello World!";
}
}
@RestControllerについて
Spring Boot ではこのクラスが「Webからのリクエストを受け付ける人」だと教えるための魔法のタグ。
もしつけないと、/hello にアクセスしても 404 Not Found になる
@GetMappingについて
このメソッドは HTTP の GET リクエストを処理しますよ」 と Spring に教える魔法のタグ
@GetMapping("/hello")
public String hello() {
return "Hello World!";
}
ブラウザで http://localhost:8080/hello にアクセス
GET リクエストが来た → Spring がこのメソッドを呼ぶ
メソッドの返り値 "Hello World!" をブラウザに返す
・基本的にAPIの入り口はControllerクラスに作成する
・各 API はメソッドとして実装する
@GetMapping("/hello") → GET リクエスト用
@PostMapping("/submit") → POST リクエスト用 など
・メソッドの返り値がそのままレスポンスになる
// Main.java
package org.example; //このクラスがどのパッケージに属するのか宣言
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //ここからアプリが始まると教える。
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
Spring Bootはmain()メソッドからスタートするので、必ずmain()メソッドを持つクラスが必要。
今回はMain.java
@SpringBootApplication
→Springにここからアプリを起動すると教える。
SpringApplication.run(Main.class, args);
→Springの仕組み(DIコンテナ、Webサーバーなど)を全部立ち上げる。
つまり、この1行でアプリ全体が「動く状態」になる。
JSON形式でデータを返却
API開発の現場では、文字列ではなくJSONでデータを返すのが基本中の基本。
実務のSpring Boot開発 = 「ControllerでJSONを返す」
package org.example;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
public class HelloController {
@GetMapping("/hello") //ブラウザで/helloにアクセスしたらこのメソッドを呼ぶ
public Map<String,String> hello() {
return Map.of("message", "Hello JSON!", "status", "success");
}
}
上記のように書くことでJSON形式でデータが返却される。
public Map<String,String> hello()
public → 他のクラスやSpringからアクセスできる公開メソッド
Map → 戻り値の型。
Map は「キーと値」の組み合わせでデータを表すJavaのコレクション
String, String は キーと値の両方が文字列 であることを示す
hello() → メソッド名
// メソッドの中身
return Map.of("message", "Hello JSON!", "status", "success");
Map.of(...) → Java 9以降の便利な書き方で、定数のMap(キーと値の組み合わせ)を作る
Spring BootがこのMapを自動で JSONに変換 してブラウザやクライアントに返す