I am not clear on where Refrofit adapter and API classes should be kept in Android? Should I use Application class or Singleton to keep the adapter? How about the API inte
Retrofit 1.7 doesn't allow one to perform request-specific operations, specifically the RequestInterceptor
. Because of this I'm using a map of Singletons where each API gets its own RestAdapter
. This way I can control Headers and such that are specific to an API.
I also give consumers of my library the ability to create a local API+RestAdapter
combo for one-off scenarios if the need arises.
Both of these should be treated as singletons and only created once.
The RestAdapter
holds the common request executor, shared HTTP client configuration, remote service info, etc. These should be shared for every API interface.
The API interfaces should also be singletons. They are thread safe and require a bit of initial processing when created (minimal, but non-zero).