Зачем статья
Недавно у меня появилась необходимость реализовать работу с бэком на GraphQL. Туториалов по настройке на Android, в отличие от REST не так много и большинство из них уже не совсем актуальны.
Что такое GraphQL
GraphQL — модная альтернатива REST API, которая позволяет запрашивать данные более оптимизированным способом, отдавая только нужные вам данные.
Настройка окружения
Делать запросы к серверу мы будем через Apollo — самая популярная библиотека для работы с GraphQL на данный момент.
Приступим к работе. Первым делом давайте добавим в манифест нужные разрешения для работы с сетью:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Далее необходимо подключить apollo. Идём в основной build.gradle и в разделе dependencies добавляем следующую строчку:
classpath 'com.apollographql.apollo:apollo-gradle-plugin:2.0.0'
Теперь необходимо в файле build.gradle модуля app подключить дополнительные зависимости:
implementation("com.apollographql.apollo:apollo-runtime:2.0.0")
implementation "com.apollographql.apollo:apollo-android-support:2.0.0"
Кроме того, в самый верх файла добавим подключение плагина:
apply plugin: 'com.apollographql.apollo'
После того, как проект синхронизировался, нам нужно настроить кодогенерацию моделей, с помощью которых мы будем делать запросы к GraphQL.
Свернем среду разработки и откроем терминал. Переходим в папку с вашим проектом: