Кто такой этот ваш Граф Ку Эль GraphQL — язык запросов для API, позволяющий клиентам точно указать набор данных, которые ему нужны.

А чем же не угодил REST?

Основная проблема заключается в том, что RESTful API предоставляет единый интерфейс для всех клиентов сервера. Но это за собой влечет overfetching и underfetching.

Например, у нас в процессе есть необходимость получения данных клиента. Но нам требуется получение только уникального идентификатора на основе договора. RESTful API в данном случае может быть устроена так, что вернется большой набор данных, включающий ФИО, информацию по всем договорам, счетам, ИНН, контактные данные и тд. Это называется overfetching. Соответственно, обработка лишних данных ведет к потере производительности, повышению нагрузки сети, а также замедлению загрузки страницы приложения.

А underfetching обратная проблема, проблема недостаточности данных в ответе. Соответственно, для получения всех данных приходится слать несколько запросов для получения всех ресурсов. Это влечет за собой примерно те же проблемы помимо усложнения логики.

А чаще всего происходит сразу обе проблемы, клиент делает несколько запросов, при этом в каждом запросе ему нужны далеко не все данные.

Так вот GraphQL предназначен для решения этих проблем. Если вкратце, то сервер предоставляет возможные для получения данные, а клиент сам описывает что ему нужно получить.

Таким образом, клиент одним запросом получает список всех нужных параметров, не отправляя запросы на несколько разных эндпоинтов, а также не получая лишние для него данные.

#graphql #rest #api #быстростатья

Кто такой этот ваш Граф Ку Эль
GraphQL — язык запросов для API, позволяющий клиентам точно указать набор данных, которые ему нужны | Сетка — социальная сеть от hh.ru