ホームページ >バックエンド開発 >PHPチュートリアル >Java バックエンド開発: Retrofit を使用した API 呼び出し
Java バックエンド開発: API 呼び出しに Retrofit を使用する
インターネット テクノロジーの急速な発展に伴い、API はアプリケーションとサービス間の通信のための標準プロトコルとなり、さまざまなシナリオで広く使用されています。モバイルアプリケーションやウェブサイトの開発など。 Java バックエンド開発の分野では、Retrofit は現在、API 呼び出しを実装するための非常に人気のあるフレームワークです。この記事では、Retrofit とは何か、および Retrofit を使用して API 呼び出しを行う方法を紹介します。
1. Retrofit とは
Retrofit は、サーバー側 API 呼び出しを実装する Java ベースのフレームワークであり、アノテーションを使用して HTTP リクエスト、パラメーター、応答本体を記述し、Java インターフェイスを使用してサーバー側の API 呼び出しを実装します。 OkHttp を基盤となるネットワーク リクエスト ライブラリとして使用し、同期および非同期のネットワーク リクエスト メソッドをサポートし、リクエストの再試行、リクエストのキャッシュ、ファイルのアップロードなどの多数の補助機能を提供します。 Retrofit は、Gson、Jackson、Moshi などのさまざまなデータ コンバータもサポートしており、リクエストおよびレスポンスの本文を Java オブジェクトに簡単に変換できます。
2. Retrofit を使用して API 呼び出しを行う方法
1. 依存関係のインポート
Retrofit を使用して API 呼び出しを行うには、まず関連する依存関係をプロジェクトに追加する必要があります。 Maven プロジェクトでは、pom.xml ファイルに次の依存関係を追加できます。
<dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>retrofit</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>converter-gson</artifactId> <version>2.9.0</version> </dependency>
このうち、retrofit は Retrofit フレームワーク自体の依存関係であり、converter-gson は Retrofit の Gson データ コンバーターの依存関係です。 。
2. API インターフェースの作成
Retrofit を使用して API 呼び出しを行う場合は、最初に対応する API インターフェースを作成する必要があります。インターフェースには、URL、リクエストメソッド、リクエストパラメータ、戻り値のデータ型などのサーバーAPIの情報が記述されます。たとえば、次のコードは、GET リクエストをサーバーに送信し、文字列を返すための基本的なインターフェイスを定義します。
public interface ApiService { @GET("/api/hello") Call<String> getHello(); }
このインターフェイスでは、Retrofit によって提供される @GET アノテーションを使用して、HTTP リクエストのタイプと URL を記述します。アドレスの場合は、Call8742468051c85b06f0a0af9e3e506b5c を使用して返されるデータ型を記述します。ここで、T には文字列、カスタム オブジェクトなどの任意の Java 型を指定できます。
3. Retrofit オブジェクトの作成
インターフェースを定義した後、Retrofit を使用して対応するサービス インスタンスを作成する必要があります。 Retrofit オブジェクトを作成するときは、リクエスト URL、データ コンバータ、ネットワーク リクエスト ライブラリ、およびその他の関連プロパティを指定できます。たとえば、次のコードは Retrofit インスタンスを作成し、リクエスト URL、Gson データ コンバータ、および OkHttp ネットワーク リクエスト ライブラリを指定します。
Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://localhost:8080") .addConverterFactory(GsonConverterFactory.create()) .client(new OkHttpClient.Builder().build()) .build();
このうち、baseUrl はサーバーのベース URL アドレスを指定し、addConverterFactory はデータを指定します。変換 コンバータは GsonConverter で、クライアントは基礎となるネットワーク リクエスト ライブラリとして OkHttp の使用を指定します。ここでは OkHttpClient のデフォルト設定が使用されていますが、接続タイムアウト、読み取りおよび書き込みタイムアウトなどの関連パラメータを自分で設定することもできます。
4. API インスタンスの作成
Retrofit は、ダイナミック プロキシを介して API インターフェイスの実装クラスを作成し、API 呼び出しを非常に簡単にします。たとえば、次のコードは API インスタンスを作成し、getHello メソッドを呼び出します。
ApiService apiService = retrofit.create(ApiService.class); Call<String> call = apiService.getHello(); Response<String> response = call.execute(); System.out.println(response.body());
このコードでは、ApiService 実装クラスが Retrofit.create メソッドを通じて動的に生成され、getHello メソッドを使用してオブジェクトを呼び出し、最後に Call の実行メソッドを呼び出してリクエストを同期的に実行します。 execute メソッドは、サーバーから返されたすべての情報を含む Response オブジェクトを返します。このオブジェクトの body 属性は、サーバーから返されたデータです。
リクエストを非同期で実行したい場合は、Call の enqueue メソッドを使用できます。例:
ApiService apiService = retrofit.create(ApiService.class); Call<String> call = apiService.getHello(); call.enqueue(new Callback<String>() { @Override public void onResponse(Call<String> call, Response<String> response) { System.out.println(response.body()); } @Override public void onFailure(Call<String> call, Throwable t) { t.printStackTrace(); } });
このコードでは、Call の enqueue メソッドを使用してリクエストを非同期に実行し、Callback インターフェイスを実装してリクエストの結果を処理します。リクエストが成功すると onResponse メソッドが呼び出され、リクエストが失敗すると onFailure メソッドが呼び出されます。
3. 概要
この記事では、API インターフェイスの作成、Retrofit インスタンスの作成、API インスタンスの作成、ネットワーク リクエストの実行のプロセスなど、Retrofit の基本的な使用法を紹介します。 Retrofit は、アノテーションを使用して API 呼び出しを簡素化し、フロントエンドとバックエンドがデータをやり取りするのを非常に便利にします。 Retrofit はスレッド セーフではなく、マルチスレッド環境では適切な同期が必要なため、Retrofit を使用する場合はスレッド セーフの問題に注意する必要があります。
以上がJava バックエンド開発: Retrofit を使用した API 呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。