【Spring Boot】RestController の基本をやさしく解説

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Spring Boot で Web API を作るときに必ず登場するのが
@RestController です。

「Controller と何が違うの?」
「どうやってレスポンスを返しているの?」
「とりあえず付けているけど、仕組みはよくわからない」
そんな気持ちになる方も多いと思います。

この記事では、RestController の基本を
やさしく・実務で役立つ形 で整理していきます。

まずはコードを見て、そこから少しずつ理解していきましょう。

まずはコードを確認

Java
@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello World";
    }
}

このコードだけで、
/hello にアクセスすると文字列が返ってきます。

とてもシンプルですが、
この裏側で Spring がいろいろな処理をしてくれています。

コードのしくみを解説

@RestController とは

一言でいうと、

「HTTP リクエストを受け取り、HTTP レスポンスを返すためのクラス」

です。

実は @RestController は
@Controller + @ResponseBody
のセットになっています。

つまり、

  • @Controller → Web の入り口
  • @ResponseBody → 戻り値をそのままレスポンスとして返す

この 2 つをまとめた便利アノテーションです。

どうして文字列がそのまま返るのか

@RestController が付いていると、
メソッドの戻り値は View(画面)ではなくレスポンスの中身 として扱われます。

例:

  • String → 文字列として返す
  • オブジェクト → JSON に変換して返す
  • List → JSON 配列に変換して返す

Spring が自動で JSON 変換してくれるため、
API を作るときにとても便利です。

あわせて知っておきたいポイント

@GetMapping / @PostMapping などの役割

HTTP メソッドごとにアノテーションが用意されています。

  • @GetMapping → データ取得
  • @PostMapping → データ作成
  • @PutMapping → 更新
  • @DeleteMapping → 削除

REST API の基本に沿った形で使えます。

パスパラメータやクエリパラメータも簡単

Java
@GetMapping("/hello/{name}")
public String hello(@PathVariable String name) {
    return "Hello " + name;
}
Java
@GetMapping("/search")
public String search(@RequestParam String keyword) {
    return "keyword: " + keyword;
}

直感的に書けるのが Spring の良さです。

JSON を返すときはオブジェクトで OK

Java
@GetMapping("/user")
public User getUser() {
    return new User("taro", 20);
}

これだけで JSON に変換されます。

使うときに気をつけたいこと

戻り値を View として返したい場合は @Controller

@RestController は JSON/API 用です。
画面を返したい場合は @Controller を使います。

例外処理は ControllerAdvice とセットで

RestController は API の入り口なので、
例外ハンドリングを整えると品質が上がります。

大きな処理は Service 層へ

Controller は「受け取って返す」役割に徹し、
ビジネスロジックは Service に分離するのが実務の基本です。

まとめ

@RestController は、
「HTTP リクエストを受け取り、JSON や文字列を返すための入り口」
です。

  • @Controller + @ResponseBody のセット
  • 戻り値は自動で JSON 変換
  • API を作るときの基本アノテーション

難しく聞こえますが、
「Web API の窓口」
と理解できれば十分です。


decopon
decopon

RestController は Spring の中でも“わかりやすいけれど奥が深い”部分です。
仕組みを知ると API 開発がぐっと楽になります。
あなたの開発が、今日より少しだけ楽になりますように。

moco
moco

リクエストを受け取って、ぽんっと返してくれるんだね。窓口のお仕事って大事だね。

コメント

タイトルとURLをコピーしました