В чем реальная польза от использования GraphQL?

Я читал в Интернете статьи о преимуществах graphql, но пока не смог найти ни одного преимущества.

Одно из наиболее распространенных преимуществ, упомянутых в этих статьях, приведено ниже?

  • Нет перевыборки с GraphQL.
  • Сокращение количества звонков со стороны клиента.
  • Детализация управления загрузкой данных
  • Развивайте свой API без версий.

Это, прежде всего, имеет смысл, но не сам graphql обеспечивает эти преимущества. Любой API второго уровня, написанный на java/python или любом другом языке, также сможет предоставить эти преимущества. По сути, это вводит еще один уровень абстракции над системами поиска данных, отдыхом или чем-то еще, и отделяет клиентскую сторону от этого уровня. После того, как вы это сделаете, все, что вы можете сделать с graphql, можно будет сделать и с любым другим языком.

Любой может реализовать, скажем, сервер scala, который извлекает данные из различных API, интегрирует их, создает объекты внутри и передает клиенту только соответствующую часть данных с полным контролем над данными. Этот API можно легко изменить и выпустить соответствующим образом. Учитывая синтаксис graphql и его громоздкость, а также сложность создания вокруг него хорошего кеша, я не понимаю, зачем вам его использовать на самом деле.

Итак, общий вопрос: есть ли какие-либо преимущества graphql, которые предоставляются приложению из-за самого graphql, а не потому, что вы реализуете еще один уровень абстракции между вашими приложениями и вашими API?


person ralzaul    schedule 05.10.2018    source источник
comment
Отвечает ли это на ваш вопрос? Есть ли недостатки у GraphQL?   -  person Michael Freidgeim    schedule 25.07.2020


Ответы (2)


Лучшие практики, известные как REST, существовали и раньше.

GraphQL более стандартизирован, чем REST, безопаснее (без инъекций), а синтаксис обеспечивает большую гибкость в области быстро меняющихся потребностей клиентов.

Это просто хороший стандарт лучших практик.

person xadm    schedule 05.10.2018
comment
Да, я не могу придумать слишком много библиотек, о которых вы не могли бы сказать этого. - person Dave Kanter; 05.10.2018
comment
REST имеет совершенно другую направленность, чем GraphQL. В то время как последний в основном является своего рода сленгом SQL для веб-запросов, первый представляет собой принцип проектирования, позволяющий отделить клиентов от серверов, что позволяет серверам свободно развиваться, не нарушая работу клиентов. Это, однако, возможно только при тщательном соблюдении определенных ограничений и шагов. Кроме того, я не сделаю это только наполовину при выполнении REST, так как в противном случае развязка не будет достигнута. С другой стороны, GraphQL использует типизированные ресурсы и, следовательно, тесно с ними связан. - person Roman Vottner; 05.10.2018

Я чувствую, что GrapgQL — еще один пример чрезмерной инженерии. Я бы сказал, что лучшие стандарты и практики — это простота.

Разобрать и возразить, а также создать собственный объект перед отправкой клиенту — это очень просто.

person Aaron Smith    schedule 23.12.2020