AndroidフォンでRESTクライアントを構築したい。
RESTサーバーは、いくつかのリソースを公開します。例:(GET)
http://foo.bar/customer List of all customer
http://foo.bar/customer/4711 The customer with id 4711
http://foo.bar/customer/vip List of all VIP customer
http://foo.bar/company List of all companys
http://foo.bar/company/4711 The company with the ID 4711
http://foo.bar/company/vip List of all VIP companys
私はRESTサーバーと通信して必要な情報を取得する方法を知っていると思います。このようなAPIでRESTクライアントクラスを実装します
public List<Customer> getCustomers();
public Customer getCustomer(final String id);
public List<Customer> getVipCustomer();
public List<Company> getCompanies();
public Customer getCompany(final String id);
public List<Customer> getVipCompanies();
VirgilDobjanschiのプレゼンテーション「AndroidRESTクライアントアプリケーションの開発」を参照して、アクティビティのワーカースレッドでRESTリクエストを処理するのは良い考えではないことを学びました。代わりに私が使用する必要があるサービスのAPIを。
(ローカル)サービスにバインドするシングルトンServiceHelperを使用するというアイデアは気に入っていますが、サービスの概念が正しく理解されていなかったのではないかと心配しています。
今のところ、REST呼び出しの結果(サービスで非同期で実行)を呼び出し元のアクティビティに報告する方法がわかりません。また、すべてのRESTリクエスト(異なる戻り値の型)を処理する1つのサービスが必要なのか、それとも各RESTリクエスト専用のサービスが必要なのか疑問に思います。
おそらく私には他にも多くの理解の問題があるので、私にとって最良のことは私のニーズを満たすサンプルアプリケーションでしょう。私のユースケースは珍しいことではなく、サンプルアプリケーションがそこにあることを願っています。
教えていただけませんか!
正しい実装の方向性を示す他の提案も役立ちます(Android API-デモは私のユースケースと一致しません)。
前もって感謝します。
クラウス
編集:SOで見つかった同様のトピック(これを投稿した後)は、私を必要な方向に導きます(複雑な「Dobjanschiパターン」を最小限に抑えます):