Я кодирую клиента json / rest в java / retrofit2.Прекрасно работает, столкнуться с одной загвоздкой.Сервис, которым я являюсь клиент (teamdesk.net), использует дублированные параметры URL для экспресс-выбора определенных столбцов.(Без каких-либо параметров столбца он просто выберет все) .. вот так:
?column=firstname&column=lastname&column=age ...
Я знаю, что мог бы смоделировать это, используя N число декораторов @Query (), например:
Call<List<User>> groupList(@Query("column") String col1, @Query("column") String col2);
Проблема здесь в том, что я ограничен фиксированным числом N столбцов.Я мог бы сделать несколько методов запроса для обработки этого (1 столбец, 2 столбца, 3 столбца и т. Д.), Но это громоздко.
Я не могу использовать шаблон @QueryMap (), так как он не позволитпо понятным причинам - несколько ключей «столбца».
Я попробовал этот шаблон, и он работает:
@GET("Patient/select.json{query}")
Call<List<Patient>> getPatients(@Path("query") String urlquery);
, а затем вызывает так:
getPatients("?top=5&column=firstname&column=lastname&column=age")
Но я боюсьчто это хакерство и что какая-то более поздняя версия модифицированной системы сломает это.
Поэтому я ищу предложения:
1) Является ли мой @GET ("Patient / select.json {query}") хорошая идея?
2) есть ли лучший способ, позволяющий мне получить доступ к редактированию параметров url перед вызовом?
3) Существует ли существующий шаблон перехватчика, который можетпомощь?
4) Могу ли я написать свой собственный шаблон перехватчика для этого - я готов для этого ..
заранее спасибо.