Wymiana ścieżki nie występuje w podstawowym adresie URL punktu końcowego interfejsu API, a jedynie względny ciąg adresu URL w metodzie. Zakładam, że nie chcesz poprzedzać względnych adresów URL na każdej deklaracji metody interfejsu.
Chociaż źle sformułowane, Javadoc z Endpoint
stanach:
Dzwoniący należy zawsze skonsultować instancję dla najnowszych wartości zamiast buforowanie zwróconych wartości.
Oznacza to, że na każde żądanie instancja Endpoint
będzie konsultowany na wartości podstawowego adresu URL.
Można dostarczyć wdrożenie niestandardowych Endpoint
na którym można zmienić wartość klucza API:
public final class FooEndpoint implements Endpoint {
private static final String BASE = "http://192.168.1.64:5050/api/";
private String url;
public void setApiKey(String apiKey) {
url = BASE + apiKey;
}
@Override public String getName() {
return "default";
}
@Override public String getUrl() {
if (url == null) throw new IllegalStateException("API key not set.");
return url;
}
}
Czy możesz rzucić okiem na moją próbę [adresowania wielu punktów końcowych interfejsu API] (http://stackoverflow.com/questions/27399633/how-to-address-multiple-api-end-points-using-retrofit)? – JJD