JavaのフレームワークJava EEを使用しWebAPIを作成してみた

公開日: 2023/8/10

こんにちは、今回はJava EEを使用したWebAPIの作成を行っていこうと思います。

1. Java EEとは


Java EE(Java Platform, Enterprise Edition)とは、Javaを使用した企業向けアプリケーション開発に必要なAPIや仕様が定義されたプラットフォームです。

Webサービスや分散処理、セキュリティなど、企業向けアプリケーションで必要な機能を提供します。

2. WebAPIとは


WebAPI(Web Application Programming Interface)とは、Web上で提供されるAPIのことです。

HTTPリクエストを受け取り、JSONやXML形式などでレスポンスを返すことができます。

WebAPIは、異なるシステム間でデータをやりとりするために使われることが多く、企業向けアプリケーションでも重要な役割を担っています。

3. Java EEを使用したWebAPIの作成手順


Java EEを使用してWebAPIを作成する手順を紹介します。

1.Java EEプロジェクトの作成
2.APIのエンドポイントの設定
3.APIの実装
4.MySQLとの接続の設定
5.プロジェクトのビルド・デプロイ


以上の手順について、順に説明していきます。

4. Java EEプロジェクトの作成

Java EEプロジェクトを作成するには、まずはEclipseなどの開発環境を用意します。

Eclipseを起動し、新しいJava EEプロジェクトを作成します。

プロジェクト名は任意のものを設定し、プロジェクトの種類は"Dynamic Web Project"を選択します。

5. APIのエンドポイントの設定


APIのエンドポイントを設定するには、まずはWeb.xmlファイルを作成します。

Web.xmlファイルには、APIのエンドポイントのパスを設定します。

以下は、APIのエンドポイントを"/api/users"とした場合のWeb.xmlファイルの例です。

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1">
    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.example.rest</param-value
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
<servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>

上記の設定では、Jerseyを使用してRESTful APIを作成しています。

Jerseyは、JavaでRESTfulなAPIを作成するためのフレームワークの1つで、Java EEに含まれています。

エンドポイントのパスは"/api/*"としています。

6. APIの実装


APIの実装を行うために、まずはRESTfulなAPIを作成するためのクラスを作成します。

以下は、ユーザー情報を扱うAPIを作成する場合の例です。

@Path("users")
public class UserResource {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response getUsers() {
        // ユーザー情報の取得処理
        List<User> userList = userService.getUsers();
        return Response.ok(userList).build();
    }
}

上記のクラスでは、@Pathアノテーションでエンドポイントのパスを指定しています。


@GETアノテーションでHTTPメソッドを指定し、@Producesアノテーションでレスポンスの形式を指定しています。

ユーザー情報の取得処理はuserService.getUsers()で実行しています。

7. MySQLとの接続の設定


MySQLとの接続設定を行うために、まずはMySQLのJDBCドライバをダウンロードします。

ダウンロードしたJARファイルをJava EEプロジェクトのlibディレクトリに配置します。

次に、コード内でMySQLとの接続設定を行います。以下は、接続設定を行うためのクラスの例です。

public class DBConnection {
    private static Connection connection;
    private static final String URL = "jdbc:mysql://localhost:3306/db_name";
    private static final String USER = "root";
    private static final String PASSWORD = "password";

    public static Connection getConnection() throws SQLException {
        if (connection == null) {
            connection = DriverManager.getConnection(URL, USER, PASSWORD);
        }
        return connection;
    }
}

上記のクラスでは、JDBCドライバを使用してMySQLに接続するための設定を行っています。

接続先のURL、ユーザー名、パスワードはそれぞれ変数に格納しています。

8. プロジェクトのビルド・デプロイ


最後に、Java EEプロジェクトをビルドしてデプロイします。

Eclipseを起動し、Java EEプロジェクトを右クリックして"Export"を選択し、"WAR file"を選択します。


WARファイルを生成したら、TomcatなどのWebアプリケーションサーバーにデプロイします。

デプロイが成功したら、WebブラウザからAPIにアクセスして動作を確認します。

例えば、上記のUserResourceクラスにアクセスするためには、以下のようなURLを入力します。

http://localhost:8080/myapp/api/users

ここで、"myapp"はデプロイしたJava EEプロジェクトのコンテキストパスに置き換えてください。

9. まとめ

以上がJava EEを使用したWebAPIの作成手順の概要です。

今後もJava EEフレームワークに関して学習し、共にスキルアップをしていきましょう。