Все, включая новичков, которые только начинают осваивать GraphQL, рано или поздно приходят к тому, что можно назвать вопросом сервера. В GraphQL все в основном состоит из двух частей – схемы (определения типов и резольверы) и HTTP-сервера. На стороне клиента вы можете найти множество полезных библиотек, которые помогут вам создать схему, и все это на SDL, который является довольно прозрачным языком, который не так уж сложно освоить. Серверная сторона может быть немного сложнее, но и здесь есть ряд возможностей, которые могут помочь вам в этом. Одна конкретная библиотека только что получила большое обновление, так что стоит проверить ее.
Йога 1.0 – быстро и просто
Graphql-yoga существует с 2017 года, и хотя она не так популярна, как Apollo-server, у нее было много преимуществ. В документации он описывается как “create-react-app для создания GraphQL-серверов”, и с этим трудно поспорить. Оно требовало минимальной настройки, сохраняло большую часть кода, который вы обычно получаете при запуске сервера, и выполняло большую часть начальной настройки проекта за вас. Все вместе это сделало его самым простым вариантом сервера для новичков, а также полезным инструментом для опытных пользователей, ищущих способ быстро создать NodeJS GraphQL сервер. В дальнейшем, если ваш проект становился слишком большим для Yoga, вы могли просто поменять его на более сложный инструмент, такой как вышеупомянутый Apollo-server. Однако все было не так радужно, поскольку к 2019 году проект перестал получать обновления и был практически заброшен. Это оставило его в роли учебного инструмента с некоторыми вариантами использования в случае, если вам нужно быстро поднять сервер, но практически гарантировало, что вы никогда не будете использовать его для полноценного проекта. Судьба библиотеки Yoga могла бы быть немного неудачной, учитывая отсутствие альтернативного легкого и универсального варианта GraphQL-сервера.
Гильдия приходит на помощь
В конце 2021 года Yoga перешла в собственность The Guild, и они решили переписать ее с нуля. Основное внимание они уделили производительности, гибкости, простоте настройки и улучшению общего опыта разработчиков, другими словами, многое из того, что было в старом Yoga, в сочетании с новыми более комплексными решениями. Главное здесь то, что The Guild обещает быть здесь надолго и не только обновлять Yoga, но и продолжать работать над его улучшением с помощью новых функций. Им можно доверять, так как у них достаточно большой опыт работы с GraphQL с рядом популярных и до сих пор разрабатываемых библиотек, таких как GraphQL Tools или Envelop. На GitHub вы уже можете увидеть, что Yoga получил сотни коммитов и множество обновлений, так что проект очень жив. В конце марта наконец-то вышло большое обновление 2.0, так что давайте посмотрим, какие ключевые особенности появились в нем:
- гибкость: Построенный на основе W3C Request/Response, который поддерживается во всех основных бессерверных, рабочих и серверных средах JavaScript, Yoga предназначен для работы практически везде.
- бережливость: Yoga имеет действительно легкое ядро и небольшой размер пакета, в три раза меньше, чем Apollo-server, что может оказаться очень важным для производительности в бессерверных средах и значительно упрощает обслуживание в целом
- из коробки: Некоторые популярные функции GraphQL API, такие как расширенная обработка ошибок, загрузка файлов, поддержка подписки или CORS, встроены в Yoga
- легко освоить: Придерживаясь подхода “пожарной безопасности” для начинающих, Yoga имеет подробную документацию и исчерпывающие руководства, которые помогут вам познакомиться со всеми функциями и возможностями.
- система плагинов: С Envelop The Guild запустила большую систему плагинов для GraphQL, которая встроена в Yoga и поставляется с включенным по умолчанию пресетом (который можно отключить или настроить).
За пределами 2.0
Yoga был полезным инструментом для простого и быстрого создания GraphQL-сервера, что особенно хорошо, если вы только хотите освоить его. Однако теперь, похоже, цели стали немного шире, и команда, стоящая за ним, хочет сделать его жизнеспособной или даже превосходящей альтернативой другим вариантам серверов. У него уже была своя ниша, и теперь объединение старого подхода Yoga, позволяющего быстро начать работу, с богатой экосистемой Envelop может оказаться мощной комбинацией. Гильдия знает толк в GraphQL и уже создала ряд очень полезных и популярных инструментов, так что мы вполне можем ожидать, что с Yoga тоже произойдет что-то хорошее. Поскольку разработка набирает скорость так быстро, дополнительные новые функции, вероятно, появятся в ближайшее время, так что даже если вы все еще не уверены, стоит следить за развитием Yoga и его сравнением с другими вариантами серверов.
Гостевая статья Михала Тышкевича для блога GraphQL Editor
Ускорьте разработку API GraphQL
GraphQL Editor – это вспомогательный инструмент как для опытных пользователей GraphQL, так и для тех, кто делает первые шаги в работе с GraphQL API. Наша универсальная среда разработки для GraphQL поможет вам создавать, управлять и развертывать GraphQL API гораздо быстрее. Попробуйте GraphQL Editor бесплатно!