【gradle】APIクライアントリポジトリをJavaで作るよ!OkHttpを使ってみる

APIクライアントリポジトリをGradleとOkHttpで作成していきますよ

1. プロジェクトのセットアップ

まず、APIクライアント専用のGradleプロジェクトを作成します

gradle init --type java-library

2. build.gradleの設定

build.gradleに必要な依存関係を追加します。OkHttpを利用するために、以下の依存を含めます

plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.squareup.okhttp3:okhttp:4.9.3'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.5'  // JSONのパーサーとして使用
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

test {
    useJUnitPlatform()
}

3. ライアントを使ったクラスの作成

次に、APIを呼び出すためのクラスを作成します。例えば、以下のように外部システムのAPIに対してGETリクエストを送信するクライアントクラスを作成できます

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;

public class ApiClient {
    private final OkHttpClient client;

    public ApiClient() {
        this.client = new OkHttpClient();
    }

    public String get(String url) throws IOException {
        Request request = new Request.Builder()
                .url(url)
                .header("Authorization", "Bearer " + token)  // Authorizationヘッダーの設定
                .header("Accept", "application/json")        // 他のヘッダーの設定も可能
                .build();

        try (Response response = client.newCall(request).execute()) {
            if (!response.isSuccessful()) {
                throw new IOException("Unexpected code " + response);
            }
            return response.body().string();
        }
    }
}

4. プロジェクトでの利用

APIクライアントを利用するアプリケーションのGradle設定に、このクライアントリポジトリを依存関係として追加します。ローカルで利用する場合、以下のようにbuild.gradleに記述します

dependencies {
    implementation project(':your-api-client')
}

外部公開する場合は、クライアントリポジトリをMaven Centralや内部のアーティファクトリに公開する必要があります

5. APIクライアントの利用

作成したクライアントを使って外部APIを呼び出す例

public class Main {
    public static void main(String[] args) {
        ApiClient apiClient = new ApiClient();
        try {
            String response = apiClient.get("https://api.example.com/data");
            System.out.println(response);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

これで、OkHttpを使ったAPIクライアントリポジトリを作成し、他のアプリケーションから利用できるようになります

是非フォローしてください

最新の情報をお伝えします