Я решил написать ответ, используя QueryMap
, потому что я думаю, что это жизнеспособное решение, и я им пользуюсь.
Retrofit имеет аннотацию под названием @ QueryMap ,Как следует из названия, это позволит вам передать карту Java, которая будет сериализована как параметры запроса.Я думаю, что это может быть использовано в вашем примере.Представьте себе следующий интерфейс Retrofit:
interface MyApi {
@GET(SOME_PATH)
Call<MyModel> get(@QueryMap Map<String, String> parameters);
}
Теперь мы можем назвать его так:
HashMap parameters = new HashMap();
parameters.put("filter[type]", "1");
parameters.put("filter[id]", "2");
myApi.get(parameters);
Здесь myApi
является экземпляром прокси Retrofit.для вашего API
То, что произойдет, это то, что Retrofit будет сериализовать параметры запроса, как вы хотите.