カテゴリ: Quarkus 更新日: 2026/01/26

Quarkus + Reactive Routesで軽量REST APIを作る方法を初心者向けに解説

Quarkus + Reactive Routesで軽量APIを作る方法
Quarkus + Reactive Routesで軽量APIを作る方法

先生と生徒の会話形式で理解しよう

生徒

「QuarkusでREST APIを作れると聞いたんですが、Spring Bootと何が違うんですか?」

先生

「Quarkusは起動がとても速く、メモリ使用量が少ないのが特徴です。特にReactive Routesを使うと、軽量で高速なAPIを簡単に作れます。」

生徒

「Reactive Routesって難しそうですが、初心者でも大丈夫ですか?」

先生

「基本はとてもシンプルです。まずは仕組みと最小構成のコードから見ていきましょう。」

1. QuarkusのREST APIとは何か

1. QuarkusのREST APIとは何か
1. QuarkusのREST APIとは何か

QuarkusのREST APIは、JavaでWeb APIを作るための仕組みです。 REST APIは、ブラウザやスマートフォンアプリ、別のサーバーとデータをやり取りするための入口として使われます。 Quarkusでは、RESTEasyやReactive Routesといった仕組みを使って、シンプルかつ高速なAPIを構築できます。 特にQuarkusはクラウドネイティブを前提に設計されており、コンテナ環境やマイクロサービスとの相性がとても良いのが特徴です。

2. Reactive Routesの特徴とメリット

2. Reactive Routesの特徴とメリット
2. Reactive Routesの特徴とメリット

Reactive Routesは、Quarkus独自の軽量なルーティング機能です。 従来のアノテーション中心のREST APIとは違い、関数のような書き方でURLと処理を結び付けます。 これによりコード量が減り、処理の流れも直感的に理解しやすくなります。 また、非同期処理を前提としているため、アクセスが増えても効率よく処理できる点が大きなメリットです。

3. 最小構成でReactive Routesを定義する

3. 最小構成でReactive Routesを定義する
3. 最小構成でReactive Routesを定義する

まずは、最もシンプルなReactive Routesの例を見てみましょう。 URLにアクセスしたら文字列を返すだけのAPIです。 初心者の方は「URLと処理をつなげている」と考えると理解しやすくなります。


import io.quarkus.vertx.web.Route;
import io.quarkus.vertx.web.RoutingExchange;
import jakarta.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class SimpleRoutes {

    @Route(path = "/hello", methods = Route.HttpMethod.GET)
    void hello(RoutingExchange exchange) {
        exchange.ok("Hello Quarkus Reactive API");
    }
}

4. パラメータを受け取るAPIの作り方

4. パラメータを受け取るAPIの作り方
4. パラメータを受け取るAPIの作り方

REST APIでは、URLに含まれる値を受け取って処理することがよくあります。 Reactive Routesでは、クエリパラメータも簡単に扱えます。 ここでは、名前を受け取ってメッセージを返すAPIを作ってみます。 Webアプリと連携する基本形として覚えておくと便利です。


import io.quarkus.vertx.web.Route;
import io.quarkus.vertx.web.RoutingExchange;
import jakarta.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class ParamRoutes {

    @Route(path = "/greet", methods = Route.HttpMethod.GET)
    void greet(RoutingExchange exchange) {
        String name = exchange.getParam("name").orElse("Guest");
        exchange.ok("Hello " + name);
    }
}

5. JSONを返すReactive Routes

5. JSONを返すReactive Routes
5. JSONを返すReactive Routes

実際のREST APIでは、文字列ではなくJSON形式でデータを返すことが多くなります。 Quarkusでは、JavaのオブジェクトをそのままJSONとして返せます。 これにより、データ構造を意識しながらAPIを設計できるようになります。


import io.quarkus.vertx.web.Route;
import io.quarkus.vertx.web.RoutingExchange;
import jakarta.enterprise.context.ApplicationScoped;
import java.util.Map;

@ApplicationScoped
public class JsonRoutes {

    @Route(path = "/user", methods = Route.HttpMethod.GET)
    void user(RoutingExchange exchange) {
        Map<String, Object> data = Map.of(
            "id", 1,
            "name", "Taro",
            "role", "beginner"
        );
        exchange.ok(data);
    }
}

6. Reactive Routesと非同期処理の考え方

6. Reactive Routesと非同期処理の考え方
6. Reactive Routesと非同期処理の考え方

Reactive Routesは、最初から非同期処理を意識して作られています。 そのため、時間のかかる処理があっても全体のパフォーマンスが落ちにくくなります。 初心者の段階では「同時にたくさんのアクセスを効率よく処理できる仕組み」と理解しておけば十分です。 Quarkusが内部でうまく調整してくれるため、複雑な設定をしなくても高速なAPIを作れます。

7. 開発中に便利なホットリロード機能

7. 開発中に便利なホットリロード機能
7. 開発中に便利なホットリロード機能

Quarkusには、コードを変更すると自動で反映されるホットリロード機能があります。 Reactive Routesでも同様に、保存するだけでAPIの挙動が変わるため、学習効率が非常に高いです。 初心者の方でも試行錯誤しながら理解を深めやすく、REST APIの動きを直感的に確認できます。


@Route(path = "/status", methods = Route.HttpMethod.GET)
void status(RoutingExchange exchange) {
    exchange.ok("API is running");
}

8. Quarkusで軽量APIを作るときのポイント

8. Quarkusで軽量APIを作るときのポイント
8. Quarkusで軽量APIを作るときのポイント

QuarkusとReactive Routesを使うことで、シンプルなコードで高速なREST APIを作れます。 起動が速く、メモリ消費が少ないため、学習用だけでなく実務でも使われる技術です。 まずは小さなAPIから作り、URLと処理の関係を理解することが大切です。 それができるようになると、Quarkusによる本格的なAPI開発へ自然に進めるようになります。

カテゴリの一覧へ
新着記事
New1
Quarkus
Quarkusのフォーム認証を基礎から解説!初心者向けセキュリティ入門ガイド
New2
Micronaut
MicronautプロジェクトをGradleで管理する基礎!build.gradleの役割を解説
New3
Micronaut
LinuxでMicronautをセットアップする方法!パッケージ管理とGradle連携
New4
Java
Javaのswitch文を徹底解説!case・defaultの書き方と実例まとめ
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkusプロジェクト構成の基本を完全解説!初心者でも迷わない「どこに何を書くか」ガイド
No.2
Java&Spring記事人気No2
Quarkus
QuarkusとMicronautとHelidonを徹底比較!軽量Javaフレームワークの違いを初心者向けに解説
No.3
Java&Spring記事人気No3
Quarkus
Quarkusのセキュリティ基礎を初心者でもわかるように解説!
No.4
Java&Spring記事人気No4
Micronaut
MicronautとSpring Bootの違いとは?アーキテクチャ比較で速さの秘密を理解する
No.5
Java&Spring記事人気No5
Quarkus
Quarkusの開発環境構築で躓きやすいポイントを完全解説!初心者でも安心して始めるためのチェックガイド
No.6
Java&Spring記事人気No6
Quarkus
Quarkusでマイクロサービス開発が加速する理由を徹底解説!Java初心者でも分かるクラウドネイティブ
No.7
Java&Spring記事人気No7
Micronaut
Micronautのアプリケーション起動が速い理由を初心者向けに解説
No.8
Java&Spring記事人気No8
Micronaut
MicronautのAOPが高速な理由とは?コンパイル時AOPの仕組みを初心者向けに徹底解説