Chcę zbudować klienta REST na telefonie z Androidem.
Serwer REST udostępnia kilka zasobów, np. (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
Myślę, że wiem, jak rozmawiać z serwerem REST i uzyskać potrzebne informacje. Zaimplementowałbym klasę klienta REST z takim API
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();
Odnosząc się do prezentacji „ Tworzenie aplikacji klienckich REST dla systemu Android ” autorstwa Virgila Dobjanschiego, dowiedziałem się, że obsługa żądania REST w wątku roboczym działania nie jest dobrym pomysłem. Zamiast tego powinienem użyć Service API.
Podoba mi się pomysł posiadania Singleton ServiceHelper, który wiąże się z (lokalną) usługą, ale obawiam się, że nie rozumiem poprawnie koncepcji usługi.
Na razie nie rozumiem, jak zgłosić wynik wywołania REST (wykonany asynchronicznie w usłudze) z powrotem do aktywności dzwoniącego. Zastanawiam się również, czy potrzebuję JEDNEJ usługi, która obsługuje wszystkie żądania REST (z różnymi typami zwrotów), czy też potrzebuję dedykowanej usługi dla każdego żądania REST.
Prawdopodobnie mam wiele innych problemów ze zrozumieniem, więc najlepszą rzeczą dla mnie byłaby przykładowa aplikacja, która spełnia moje potrzeby. Mój przypadek użycia nie jest niezwykły i mam nadzieję, że istnieje przykładowa aplikacja.
Czy mógłbyś dać mi znać!
Wszelkie inne sugestie, które wskazują mi właściwy kierunek implementacji, są również pomocne (Android API-Demo nie pasuje do mojego przypadku użycia).
Z góry dziękuję.
Klaus
EDYCJA : Podobne tematy znalezione w SO (po opublikowaniu tego), które prowadzą mnie w pożądanym kierunku (minimalizując złożony „wzór Dobjanschi”):