Модернизация + кинжал + разные конечные точки

В моем приложении я использую Retrofit и передаю экземпляр ApiClient в соответствующее место через Dagger. Я читал, что RestAdapter.Builder.build() и adapter.create(Class class) очень дорогие. Поэтому я аннотирую метод предоставления как @Singleton.

Вот абстрактный код:

@Provides
@Singleton
ApiClient provideRestClient() {
  ...
  return adapter.create(ApiClient.class)
}

Все работало отлично, но теперь мне нужно переключаться между несколькими поддоменами. т.е. с http://subdomain1.domain.com на http://subdomain2.domain.com.

Могу ли я изменить конечную точку во время выполнения? Или я не должен использовать Retrofit в этом случае...


person Anton    schedule 24.09.2014    source источник
comment
Почему вам нужно использовать поддомены? Возможно, будет лучше иметь разные пути, а не поддомены. В случае поддоменов, я думаю, вам нужно будет создать разные службы дооснащения.   -  person AlexKorovyansky    schedule 24.09.2014


Ответы (1)


Согласно классу Endpoint:

Вызывающие всегда должны обращаться к экземпляру за последними значениями, а не кэшировать возвращаемые значения.

Это означает, что вы можете изменить значение, которое вы возвращаете из getUrl() в своем собственном классе реализации Endpoint, в зависимости от сервера, к которому вы хотите подключиться.

person Jake Wharton    schedule 24.09.2014