Вопрос миграции с REST на GraphQL меня сопровождал очень долгое время. Еще, будучи backend разработчиком, у меня возникали споры с Frontend разработчиками по поводу необходимости внедрения этой технологии. Но вот, спустя 2 года, я уже начал выступать в качестве спикера и рассказывать про особенности перехода с REST на GraphQL. Начиналось все за здравие - возможности, которые из коробки предоставляет GraphQL порадовали настолько сильно, что мы, в wormsoft.ru, начали постепенно переводить на эту технологию активные проекты наших клиентов.
Тезисы для публикации
Мечтая максимально разгрузить Backend разработчиков я решил попробовать делегировать логику группировки данных в запросах к серверу на Frontend разработчиков. В качестве конечного решения был выбран GraphQL. Сначала написали на нем пару тестовых проектов и, уже после проверок, начали переводить на него реальные проекты клиентов. Много воды с тех пор утекло и накопились знания о особенности перевода, которым можно было бы поделиться. В процессе перехода мы столкнулись со многими особенностями этой технологии и полученный опыт, на данный момент, позволяет раскрыть следующие тезисы:
- Доводы за и против перехода на GraphQL
- Как постепенно мигрировать на GraphQL
- Как безопасно делегировать логику сборки данных на Frontend
- Как можно получить максимальный эффект от подключения GraphQL в проект с микросервисами
- Недостатки технологии, которые мы осознали только столкнувшись с ними
- За чем нужно следить, чтобы не выстрелить себе в ногу, подключая GraphQL
Записи выступлений на эту тему
- PHPRussia 2019 youtu.be/VsbiuFzILRM
- RITFest 2019 (Backendconf) youtu.be/iiI5L6b0Uvo
- Ufadevconf youtu.be/rTPDC6P9yx8
- Казанский PHP Митап youtu.be/fRrAeb7D2Dc
- OTUS DemoDay youtu.be/FU3zTrRqMys
Было также выступление по смежной теме "Устойчивость GraphQL к нагрузке по сравнению с REST". Часть доклада совпадает с базовым, но есть отдельный блок про то, за чем нужно следить под нагрузкой.
Запись выступления на Highload++ Siberia: youtu.be/_L_2HNXrTbI