Retrofit использует аннотации для перевода определенных ключей и значений в соответствующий формат.Использование аннотации @Query ("key") для строкового значения добавит параметр запроса с именем ключа и соответствующим строковым значением в URL запроса (конечно, вы можете использовать другие типы, кроме string:)).
На самом делеСуществуют API с конечными точками, позволяющими передавать (опционально) несколько параметров запроса.Вы хотите избежать объявления метода сервиса, как показано ниже, с «бесконечными» опциями для параметров запроса:
public interface NewsService() {
@GET("/news")
Call<List<News>> getNews(
@Query("page") int page,
@Query("order") String order,
@Query("author") String author,
@Query("published_at") Date date,
…
);
}
Вы можете вызвать метод сервиса .getNews с нулевыми значениями для каждого из параметров, чтобы сделать их необязательными,Модификация будет игнорировать нулевые значения и не отображать их как параметры запроса.Однако есть лучшее решение для работы со сложными конечными точками API, имеющими различные параметры для параметров запроса.Не волнуйтесь, Retrofit помог вам!
Вы можете узнать больше по приведенной ниже ссылке: -
https://futurestud.io/tutorials/retrofit-2-add-multiple-query-parameter-with-querymap