Ich bin neu zu Retrofit und möchte wissen, was die beste Praxis ist. HierSoll ich mit einem Singleton nachrüsten?
ist einiger abstrahierte Code, den ich online gefunden:
public class RestClient
{
private static final String BASE_URL = "your base url";
private ApiService apiService;
public RestClient()
{
Gson gson = new GsonBuilder()
.registerTypeAdapterFactory(new ItemTypeAdapterFactory()) // This is the important line ;)
.setDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'")
.create();
RestAdapter restAdapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(BASE_URL)
.setConverter(new GsonConverter(gson))
.setRequestInterceptor(new SessionRequestInterceptor())
.build();
apiService = restAdapter.create(ApiService.class);
}
public ApiService getApiService()
{
return apiService;
}
}
und kann sagen, dass ich eine api Anfrage machen will/Aufruf mit dieser Funktion
RestClient restClient = new RestClient();
restClient.getApiService().getPosts();
Meine Frage ist, soll ich eine neues restClient-Objekt oder dies sollte ein Singleton sein, oder der ApiService sollte ein Singleton sein.
Was ist die beste Praxis? Bitte beachten Sie, dass ich keine Abhängigkeitsinjektion verwenden möchte. Ich möchte nur verstehen, wie Retrofit am besten zu nutzen ist.
Wie würden einige von Ihnen diesen Anruf tätigen?
Wenn es ein Singleton ist, kann es zwei oder mehr API-Anfragen parallel behandeln? – user1796624
Ja, es kann viele parallele Anfragen verarbeiten - ich bin nicht sicher, was das Limit ist, aber wenn Sie das überschreiten, wird es die Anfrage in die Warteschlange stellen (angenommen, dass Sie es asynchron verwenden, was Sie sollten). Ich habe erfolgreich ein Dutzend oder mehr Async-Anfragen in schneller Folge geworfen, ohne sich Gedanken darüber machen zu müssen, wie viele offene Anfragen es gibt. – GreyBeardedGeek