カテゴリ: Play Framework 更新日: 2025/12/07

Play Frameworkで実装するREST API入門!初心者でもわかるリクエストとレスポンスの基本と実践

REST APIのリクエスト・レスポンス実装
REST APIのリクエスト・レスポンス実装

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

生徒

「Play FrameworkでREST APIを作ろうとしているのですが、リクエストの受け取り方やレスポンスの返し方をどう書けばいいのか迷ってしまいました。Webアプリとは少し違う感じがするので不安です。」

先生

「REST APIではHTTPメソッドやJSON形式でのやりとりが大切になります。Play FrameworkはREST APIを作るのに向いた構造なので、基本を身につければスムーズに実装できますよ。」

生徒

「JSONのデータを受け取って処理したり、逆にJSONで返したりするイメージですよね?実際のコードを見ながら学びたいです。」

先生

「それでは、初心者向けにPlay FrameworkのREST APIで使うリクエストとレスポンスの基本的な書き方を順番に見ていきましょう。」

Play FrameworkとREST APIの関係

Play FrameworkとREST APIの関係
Play FrameworkとREST APIの関係

Play Frameworkは高速なノンブロッキング処理を採用しているため、REST APIを構築する場面でも高いパフォーマンスを発揮します。Webアプリケーションだけでなく、スマートフォンアプリのバックエンドや外部サービスとのAPI連携に使われることが多く、JSON形式でのデータ交換も標準でサポートされています。

また、Play Frameworkではコントローラにメソッドを用意しておけば、ルーティング設定を通してREST APIとして公開できます。そのため、HTTPメソッドごとに処理を分けたり、入力されたJSONをパースして扱うといった基本処理を理解するだけで、実践的なAPI開発が可能になります。

初心者が最初につまずきやすいポイントとして、リクエストボディをどう取得するか、レスポンスをどの形式で返すかといった部分がありますが、Play Frameworkでは簡潔な記述で実装できるため、まずは基本の流れを押さえることが大切です。

REST APIで扱うHTTPメソッドの基本

REST APIで扱うHTTPメソッドの基本
REST APIで扱うHTTPメソッドの基本

REST APIでは、特定のリソースに対してHTTPメソッドを使って操作します。代表的な操作としては、データ取得のGET、データ作成のPOST、データ更新のPUT、データ削除のDELETEがあります。Play Frameworkではこれらのメソッドに対応するアクションをコントローラに用意するだけで動作します。

例えばユーザー情報を扱うAPIを作りたい場合、ユーザー一覧の取得にはGET、ユーザーの新規作成にはPOSTを使うのが一般的です。このようにHTTPメソッドを意識して設計することによって、REST API全体の構造が分かりやすく統一されます。

JSON形式のデータを受け取る方法

JSON形式のデータを受け取る方法
JSON形式のデータを受け取る方法

REST APIではクライアントがJSON形式でデータを送信することが多く、Play Frameworkではrequest().body().asJson()を使うことで簡単にJSONを受け取ることができます。このメソッドはリクエストボディが正しいJSONである場合にJsonNodeとして扱うことができ、必要な値を取り出して処理に使えます。

例えばユーザー登録APIに名前とメールアドレスを送信する場合、Play Frameworkのコントローラでは次のように記述します。


package controllers;

import play.mvc.*;
import com.fasterxml.jackson.databind.JsonNode;
import play.libs.Json;

public class UserApiController extends Controller {

    public Result createUser() {
        JsonNode json = request().body().asJson();

        if (json == null) {
            return badRequest("JSONデータが送信されていません。");
        }

        String name = json.findPath("name").asText();
        String email = json.findPath("email").asText();

        return ok("ユーザーを登録しました: " + name + " / " + email);
    }
}

JSON形式のレスポンスを返す方法

JSON形式のレスポンスを返す方法
JSON形式のレスポンスを返す方法

REST APIでは、クライアントに返すデータもJSON形式であることが一般的です。Play Frameworkにはplay.libs.Jsonが用意されており、オブジェクトをJSONに変換する機能を簡単に使えます。文字列を返す代わりにJSONとして返すことで、クライアント側での処理が容易になります。


package controllers;

import play.mvc.*;
import com.fasterxml.jackson.databind.node.ObjectNode;
import play.libs.Json;

public class UserApiController extends Controller {

    public Result getUser() {
        ObjectNode result = Json.newObject();
        result.put("id", 1);
        result.put("name", "山田太郎");
        result.put("email", "taro@example.com");

        return ok(result);
    }
}

このようにObjectNodeを利用すると、REST APIとして意味のあるJSONデータを柔軟に返すことができます。複雑なデータ構造を扱う場合も、リストやマップをJSONに変換して返すことができるため、Play FrameworkはAPI開発において扱いやすい選択肢になっています。

REST APIでのエラー応答の扱い

REST APIでのエラー応答の扱い
REST APIでのエラー応答の扱い

REST APIでは、通常のHTMLレスポンスとは異なり、ステータスコードとJSONによってエラー情報を返すことが多くなります。例えば不正な入力があった場合には400、認証が必要な場合には401、リソースが存在しない場合には404を返すことによって、クライアント側は次の処理を判断できます。

Play FrameworkではbadRequestnotFoundなどのメソッドを利用してエラーを返しつつ、JSON形式のメッセージを含めることも可能です。


ObjectNode error = Json.newObject();
error.put("message", "入力が正しくありません。");
return badRequest(error);

ユーザー向けの説明を含めたJSONレスポンスを返すことで、クライアントアプリや外部システムが問題を正確に把握しやすくなります。REST APIではこのような丁寧なエラーハンドリングが非常に重要です。

REST API実装で意識するべきポイント

REST API実装で意識するべきポイント
REST API実装で意識するべきポイント

REST APIは単純なデータの受け渡しに見えますが、利用される場面はさまざまであり、外部のサービスから大量のリクエストが届くこともあります。そのため、Play Frameworkの非同期処理の強みを活かしながら、読みやすい設計を心がけることが大切です。

また、JSONの扱いやHTTPステータスコードの選択を正しく行うことで、クライアントにとって使いやすいAPIを提供できます。特に複数のアプリや外部サービスと連携する場合には、レスポンス形式を統一することが重要なポイントになります。

カテゴリの一覧へ
新着記事
New1
Play Framework
Play Frameworkでフォームデータをコントローラで扱う方法を完全解説|Java初心者向けコントローラ入門
New2
Jakarta EE
Jakarta EE JSPにおけるJSTLとスクリプトレットの違いと使い分けを初心者向けに徹底解説
New3
Play Framework
Play Frameworkでクエリパラメータをコントローラで処理する方法を完全解説|Java初心者向け入門
New4
Play Framework
Play FrameworkとSpring Bootの違いを徹底比較!初心者でもわかるJavaフレームワーク入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEのリリースサイクルとバージョンの進化をやさしく解説!
No.2
Java&Spring記事人気No2
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.3
Java&Spring記事人気No3
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.5
Java&Spring記事人気No5
Jakarta EE
Jakarta EE JSPでJSTL SQLタグを使った簡易データベースアクセスをやさしく解説
No.6
Java&Spring記事人気No6
Jakarta EE
Jakarta EE JSPにおけるJSTL国際化タグ(fmt:message)の使い方を初心者向けに完全解説
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EE JSPでJSTLを使ったJSONやREST APIレスポンス処理を初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Play Framework
Play Frameworkでリクエストデータの受け取り方を完全解説|Java初心者向けコントローラ入門