SOAP -> REST -> GraphQL

SOAP -> REST -> GraphQL

Android Broadcast


Материал подготовлен на основе статьи "Why GraphQL is the future of APIs" ?

В современном мире, когда надо реализовать клиент серверное взаимодействие самое популярное решение - REST API. Эта технология успела зарекомендовать себя (появилась она в начала 21 века) и реализация его как со стороны бекенда, так и клиентов - стандартная задача, для решения которой существует множество удобных решений.

Пример организации API в REST

REST также имеет ряд проблем:

  • Невысокая производительность
  • Множество endpoint-ов (под каждый метод и еще под различный объем модели)
  • Необходимость получения данных большего объема чем это необходимо (нельзя указать конкретные поля объекта, которые нужно вернуть)
  • Версионирование
  • Сложность понимания

GraphQL

В 2012 году в Facebook решили сделать альтернативу, лишенную этих недостатков - GraphQL, а уже в 2015 сделали её open-source. GraphQL представляет собой среду для выполнения запросов, которая работает на сервере, на основе заранее описанной системе типов для ваших данных. GraphQL не привязан к какой либо базе данных или хранилищу.

GraphQL привнес следующие улучшения по сравнению с REST:

  • Ничего лишнего: Один endpoint
  • Выходные данные рабочим (клиентам): возможность указывать данные которые вы хотите получить и ничего лишнего, теперь не сервер решает что отдать, а клиент
  • Отсутсвие необходимости версионирования: можно добавить новые поля и типы без эффекта для существующих запросов
  • Повышение скорости запросов: за счет получения только необходимых данных и отсутствие необходимости делать несколько запросов, увеличивается скорость доставки данных к клиенту

Что дальше?

Около 20 лет назад для работы клиентов с сервером применялся SOAP, которому на смену пришел REST из-за потребностей программ того времени. Спустя 20 лет после прихода REST мир компьютеров заметно изменился - большая доля его смартфоны. Также и поменялись потребности пользователей: информация приходит нам с множества источников, экран на вашем устройстве отображает множество информации, получение которой вы не хотите ждать долго.

Яркий пример непринятия эволюции в технологиях. Там есть и про SOAP )
Рост популярности GraphQL

GraphQL видется мне следующим звеном эволюции в этой цепочки, который позволит выводить приложения на новый уровень.


Report Page