Исходя из предоставленного примера, можно просто использовать статический URL. Это должно быть аннотировано так, чтобы не использовать какие-либо значения времени выполнения и иметь возможность изменить его во время выполнения:
@GET("{path}")
fun getSamples(@Path("path") path: String) {}
Затем можно загрузить все, что String path
из строковых ресурсов, во время выполнения. Когда базовый URL должен быть изменен, может потребоваться перенастройка клиента. Это связано с тем, что это определение interface
используется процессором аннотаций для генерации из него уровня абстракции - уже во время компиляции, а не во время выполнения ... при получении литерала жалобы, он должен выглядеть примерно так:
@GET(Constants.SOME_PATH)
fun getSamples() {}
но есть небольшое продвижение по сравнению с жестким кодированием этого String
, потому что оно не может быть изменено позже.