Кто такой этот ваш Граф Ку Эль
GraphQL — язык запросов для API, позволяющий клиентам точно указать набор данных, которые ему нужны.
А чем же не угодил REST?
Основная проблема заключается в том, что RESTful API предоставляет единый интерфейс для всех клиентов сервера. Но это за собой влечет overfetching и underfetching.
Например, у нас в процессе есть необходимость получения данных клиента. Но нам требуется получение только уникального идентификатора на основе договора. RESTful API в данном случае может быть устроен так, что вернется большой набор данных, включающий ФИО, информацию по всем договорам, счетам, ИНН, контактные данные и тд. Это называется overfetching. Соответственно, обработка лишних данных ведет к потере производительности, повышению нагрузки сети, а также замедлению загрузки страницы приложения.
А underfetching обратная проблема, проблема недостаточности данных в ответе. Соответственно, для получения всех данных приходится слать несколько запросов для получения всех ресурсов. Это влечет за собой примерно те же проблемы помимо усложнения логики.
А чаще всего происходит сразу обе проблемы, клиент делает несколько запросов, при этом в каждом запросе ему нужны далеко не все данные.
Так вот GraphQL предназначен для решения этих проблем. Если вкратце, то сервер предоставляет возможные для получения данные, а клиент сам описывает что ему нужно получить.
Таким образом, клиент одним запросом получает список всех нужных параметров, не отправляя запросы на несколько разных эндпоинтов, а также не получая лишние для него данные.
#graphql #rest #api
#быстростатья
Post #429
1.4K

- ❤ 13
- 👍 10
- 🔥 2
- 🗿 1