PHP Profi

PHP GraphQL пакеты и интеграции с Symfony Перевод

GraphQL продолжает набирать обороты в 2017 году. Хотя он и не является заменой для REST, он обеспечивает пользователей контентных API и т. п. лучшей эргономикой, чем RESTful-интерфейсы общего назначения. Для PHP существуют две популярные библиотеки, и обе имеют бандлы для интеграции с Symfony.

Реализация GraphQL-совместимого сервера — не тривиальная задача, да и создавать с нуля свой собственный не рекомендуется (на любом языке). Для PHP на данный момент есть две библиотеки, которые предлагают прочную основу для построения реализаций GraphQL:

 

Обе эти библиотеки представляют собой РНР порт, основанный на эталонной реализации GraphQL на JavaScript. Функционально оба варианта одинаковы, и основной принцип одинаков — предоставляют фреймворк для задания/определения/настройки типов, резолвинга и т. п., который работает по спецификации GraphQL .

Как Webonyx, так и Youshido активно развиваются, и имеют относительно большое количество участников 28 и 32 соответственно. Сейчас, когда спецификация GraphQL стабильна и реализация всех фич завершена, в этих библиотеках не проводится значимых работ.

Бандлы интеграции GraphQL с Symfony

Библиотека Webonyx и Youshido также имеют интеграции с Symfony Framework-ом. Как и сами библиотеки, оба бандла практически идентичны по функциональности. Они интегрируют основную библиотеку в фреймворк в рамках методов настройки, доступа к клиенту GraphQL и т. д. Они позволяют разработчикам получить стартовую точку и начать конфигурировать и разрабатывать их решение, вместо создания шаблонно-типичной интеграции с фреймворком.

Пакет с бандлом интеграции для библиотеки Youshido разрабатывается той же командой разработчиков, что и сама библиотека. Бандл для Symfony достаточно прост в интеграции, хорошо документирован и поставляется с примером реализации демо-приложения. Также стоит отметить, что модуль Drupal 8 GraphQL под капотом использует библиотеку Youshido.

Аналогичный пакет интеграции для Webonyx разрабатывается отдельной командой, чем сама библиотека. Разработчиком бандла является Overblog — блог-платформа во Франции. Как и в Youshido, бандл интегрирует библиотеку в фреймворк. Также есть документация, которая в последнее время улучшилась, но реализация демо позволит новым разработчикам начать работу быстрее.

Заключение

Для разработчиков существующих или новых приложений на PHP сейчас есть два варианта построения реализаций GraphQL. Оба, – Webonyx и Youshido, — хорошие варианты, и, кажется, имеют стабильное будущее с широким использованием.

Для разработчиков на Symfony то же самое верно. Обе библиотеки имеют качественные интеграции с фреймворком. Оба варианта замечательны, но решающим фактором в настоящее время может стать то, используете ли вы в Symfony Standard Edition или Symfony Flex.

В интеграции для Webonyx уже начали сосредотачиваться на Symfony Flex, в то время как в команде Youshido еще не предприняли никаких шагов в сторону поддержки Flex официально.

2017-11-23 оригинал

Последние посты

Комментарии

авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
scif (7 лет назад)

Отличная штука, этот GraphQL. Как ещё одна реализация, можно упомянуть ApiPlatform. Они добавили поддержку GraphQL совсем недавно. В доках нет, но включается легко. Пару недель назад экспериментировал — работает!

alek13 (7 лет назад)

Я так понимаю, речь про это: https://api-platform.com/ ? Сенкс!