Quiero construir un cliente REST en un teléfono Android.
El servidor REST expone varios recursos, p. Ej. (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
Creo que sé cómo hablar con el servidor REST y obtener la información que necesito. Implementaría una clase de cliente REST con una API como esta
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();
Con referencia a la presentación " Desarrollo de aplicaciones cliente REST de Android " de Virgil Dobjanschi, aprendí que no es una buena idea manejar la solicitud REST en un subproceso de trabajo de la actividad. En su lugar, debería usar la API de servicio .
Me gusta la idea de tener un Singleton ServiceHelper que se une a un servicio (local), pero me temo que no entendí correctamente el concepto de servicio.
Por ahora, no entiendo cómo informar el resultado de una llamada REST (realizada de forma asincrónica en un Servicio) a la Actividad de la persona que llama. También me pregunto si necesito UN servicio que maneje todas las solicitudes de REST (con diferentes tipos de devolución) o si necesito un servicio dedicado para cada solicitud de REST.
Probablemente tengo muchos otros problemas de comprensión, por lo que lo mejor para mí sería una aplicación de muestra que satisfaga mis necesidades. Mi caso de uso no es inusual y espero que exista una aplicación de ejemplo.
¡Por favor, házmelo saber!
Cualquier otra sugerencia que me indique la dirección de implementación correcta también es útil (Android API-Demo no coincide con mi caso de uso).
Gracias por adelantado.
Klaus
EDITAR : Temas similares encontrados en SO (después de publicar esto) que me llevan en la dirección que necesito (minimizando el complejo "patrón Dobjanschi"):