оно было на хайпе, сейчас что-то изменилось? как показывает себя в долгосрочной перспективе?
интересно стало, так как смежная команда аннонсировала проект с API на graphql, к которому нам надо будет парковаться. обычно всегда делаем REST.
в качестве аргументов за озвучивали безопасность graphql. почитал про него и не очень понял, в чем именно там безопасность в отличие от привычных веб-сервисов. И еще после беглого изучения пришел к выводу, что graphql нужен для того, чтобы консьюмеры API могли сами решать какие данные им нужны в ответах и как следствие убрать зависимость консьюмеров от разработчиков API. насколько это нужно в маленьких и средних командах?
Безопасность? В каком месте? Graphql клёвая штука, но если нет опыта первые схемы будут хуевые. Рекомендую сразу поресерчить типичные факапы
вот и я не понял, но хоть будет повод теперь задать конкретные вопросы про какую безопасность речь
Задумка инструментария не изменилась, потому какое позиционирование было ранее, такое и осталось. Это все еще хорошее решение для мобильных клиентов или клиентов в схожих ситуациях. И никогда это не было заменой REST, что бы сравнивать их в типовых кейсах. Причем многие проблемы которые решает GraphQL можно решать и с подходом Backend-for-Frontend, но возможно не все
Плюс Graphql в том, что в отличие от REST, где статическая схема, позволяет 1. Меньше делать ручек (например запрос GetOne где то нужен вместе с полем company, где то без) 2. Если какое то поле требует того, чтобы сходить в другой микросервис, то когда мы его не указываем в запросе, тем самым оптимизируем его
Нет никаких проблем в реализации подобного в парадигме REST
Да, но ты просто свой протокол делаешь
Нет, не делаю. Это просто спецификация API с параметрами запроса
Это и есть протокол, как odata или jsonapi
Ну так что я тогда делаю своего? Я могу это делать (и делал) в контексте JsonAPI
Это будет дольше в реализации и не без костылей / много дублирования . Можно наклепать по 5 запросов со схожей логикой, но зачем Можно сделать селект полей, т.е. передаём названия полей в квери, и получаем только их, но 1. Как это будет работать с nested полями 2. В чем преимущество?
не могу сказать что это дольше + это окупается когда у тебя таких кейсов много.
"Вы или умеете готовить или не очень". Во все можно добавить костылей, делать дольше и т.д. Я просто привел пример вам как контр-аргумент на то что вы назвали исключительным плюсом GraphQL
Обсуждают сегодня