Переход от REST API к GraphQL на примере реальных проектов

Вопрос миграции с REST на GraphQL меня сопровождал очень долгое время. Еще, будучи backend разработчиком, у меня возникали споры с Frontend разработчиками по поводу необходимости внедрения этой технологии. Но вот, спустя 2 года, я уже начал выступать в качестве спикера и рассказывать про особенности перехода с REST на GraphQL. Начиналось все за здравие - возможности, которые из коробки предоставляет GraphQL порадовали настолько сильно, что мы, в wormsoft.ru, начали постепенно переводить на эту технологию активные проекты наших клиентов.

Тезисы для публикации

Мечтая максимально разгрузить Backend разработчиков я решил попробовать делегировать логику группировки данных в запросах к серверу на Frontend разработчиков. В качестве конечного решения был выбран GraphQL. Сначала написали на нем пару тестовых проектов и, уже после проверок, начали переводить на него реальные проекты клиентов. Много воды с тех пор утекло и накопились знания о особенности перевода, которым можно было бы поделиться. В процессе перехода мы столкнулись со многими особенностями этой технологии и полученный опыт, на данный момент, позволяет раскрыть следующие тезисы:

  • Доводы за и против перехода на GraphQL
  • Как постепенно мигрировать на GraphQL
  • Как безопасно делегировать логику сборки данных на Frontend
  • Как можно получить максимальный эффект от подключения GraphQL в проект с микросервисами
  • Недостатки технологии, которые мы осознали только столкнувшись с ними
  • За чем нужно следить, чтобы не выстрелить себе в ногу, подключая GraphQL

Записи выступлений на эту тему

  1. PHPRussia 2019 youtu.be/VsbiuFzILRM
  2. RITFest 2019 (Backendconf) youtu.be/iiI5L6b0Uvo
  3. Ufadevconf youtu.be/rTPDC6P9yx8
  4. Казанский PHP Митап youtu.be/fRrAeb7D2Dc
  5. OTUS DemoDay youtu.be/FU3zTrRqMys

Было также выступление по смежной теме "Устойчивость GraphQL к нагрузке по сравнению с REST". Часть доклада совпадает с базовым, но есть отдельный блок про то, за чем нужно следить под нагрузкой.

Запись выступления на Highload++ Siberia: youtu.be/_L_2HNXrTbI