GraphQL существует с 2012 года (внутри Facebook😅).
Но Facebook обнародовал его в 2015 году, и с тех пор он стал одной из самых используемых архитектур Back-end.
Вопрос в том, что именно представляет собой GraphQL?
Запутались?
Проще говоря, он используется для определения того, как делаются запросы к API и как он обрабатывает ответы
.
Но как он связан с REST и даже лучше, чем REST?
Есть несколько моментов, которые необходимо учесть, чтобы провести такое сравнение.
Единая точка происхождения
Если вы когда-либо разрабатывали REST API, вы знаете, сколько работы требуется, чтобы создать конечную точку для данных пользователя, другую для списка записей блога, третью для списка подписчиков, следующую и так далее.
В GraphQL есть только одна конечная точка, и она выполняет всю работу. Для доступа к набору данных вам нужно указать только то, что вам нужно. Сервер GraphQL делает то, что он организует только те специфические данные, которые вам нужны, и возвращает ответ.
Done. No extra data, no multiple endpoints.
Быстрые итерации продукта
В быстром цикле разработки существует множество версий API.
И каждый раз, когда появляются новые данные, конечные точки приходится перенастраивать, переделывать, что-то менять.
С GraphQL эта проблема решена.
Благодаря гибкой природе GraphQL, изменения на стороне клиента могут быть сделаны без дополнительной работы на сервере.
Поскольку клиенты могут указать свои точные требования к данным, ни одному бэкенд-инженеру не нужно вносить коррективы, когда дизайн и потребности в данных на фронтенде меняются.
Связь на основе схем
Важным шагом в разработке является интеграция. И именно здесь все переворачивается. Ни одна интеграция не может быть завершена без списка ошибок и отладки.
Думаю, ошибки — не лучшие друзья разработчиков. Согласны?
Поскольку GraphQL работает на сильной системе типов для определения схемы запросов, вероятность ошибки меньше. Это происходит потому, что и фронтенд, и бэкенд команды знают определенную схему. Таким образом, процесс становится намного проще.
Я не утверждаю, что GraphQL лучше REST во всех отношениях, но его определенно стоит изучить.
И именно этим я сейчас и занимаюсь. Это был только первый день, и я буду рад получить поддержку в дальнейшем, когда я буду делиться с вами своим путешествием.
PS: Нет никакой платы за то, чтобы присоединиться к веселью.