Квест → Как хакнуть форму
Прошли: 77
GraphQL продолжает набирать обороты в 2017 году. Хотя он и не является заменой для REST, он обеспечивает пользователей контентных API и т. п. лучшей эргономикой, чем RESTful-интерфейсы общего назначения. Для PHP существуют две популярные библиотеки, и обе имеют бандлы для интеграции с Symfony.
Реализация GraphQL
-совместимого сервера — не тривиальная задача, да и создавать с нуля свой собственный не рекомендуется (на любом языке). Для PHP на данный момент есть две библиотеки, которые предлагают прочную основу для построения реализаций GraphQL:
Обе эти библиотеки представляют собой РНР порт, основанный на эталонной реализации GraphQL на JavaScript. Функционально оба варианта одинаковы, и основной принцип одинаков — предоставляют фреймворк для задания/определения/настройки типов, резолвинга и т. п., который работает по спецификации GraphQL .
Как Webonyx, так и Youshido активно развиваются, и имеют относительно большое количество участников 28 и 32 соответственно. Сейчас, когда спецификация GraphQL стабильна и реализация всех фич завершена, в этих библиотеках не проводится значимых работ.
Библиотека 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 официально.
Отличная штука, этот GraphQL. Как ещё одна реализация, можно упомянуть ApiPlatform. Они добавили поддержку GraphQL совсем недавно. В доках нет, но включается легко. Пару недель назад экспериментировал — работает!
Я так понимаю, речь про это: https://api-platform.com/ ? Сенкс!