WebAPIにおけるコールバックという仕組みについて

まず、クライアントがリクエストを行います。Webサーバを介して、相手先のサーバーにリクエストが届き、処理され、そのレスポンスが、Webサーバを介して、返ってきます。これがWebサービスです。

 

リクエストしたが、相手のサーバーで処理に時間がかかっているとしましょう。その場合、ずっとWebサービスにつながってしまっていると、他の仕事ができないという状況が生まれます。

 

それを解決するために、リクエストを行った後、一旦、クライアントとWebサーバーを切り離してしまい、相手のサーバーの処理が終わってレスポンスが返ってきたら再びクライアントとWebサーバーにつなげるというのがよいようです。

 

Callとは、ここでは、『リクエストすること』です。

Callbackとは、『レスポンスが返ってくること』です。

 

OkHttp3ClientクラスのnewCall( )メソッドは、Requestクラスのオブジェクトを引数にとり、新たにリクエストを行います。

OkHttp3Clientクラスのenqueue()メソッドは、今後レスポンスが返ってきたときの処理の記載を含んだ『Callbackインターフェースを実装したクラスのオブジェクト』を引数にとり、スケジュールを立てておきます。

 

OkHttp3のCallbackインターフェースには、二つのメソッドが定義されてます。

正しいレスポンスが返ってきたら、onResponse( )メソッドが実行されます。