Какие преимущества дает Graphql по сравнению с JBuilder в Ruby on Rails?
Я слышал, как многие разработчики бредят о Graphql. После внедрения в Ruby on Rails я начал понимать, что он по сути делает то же самое, что и JBuilder, встроенный в Rails 5.
С какой точки зрения Rails, какое преимущество дает Graphql перед JBuilder? Они по существу используются для того же самого? Что-то мне не хватает в отношении Graphql?
1 ответ
Одним из преимуществ GraphQL является тот факт, что это формально определенный стандарт с собственным языком запросов.
Это стандарт с безопасной спецификацией. Это означает, что вы можете взаимодействовать с серверами, написанными в разных технических стеках, используя один и тот же язык запросов и систему типов.
Так как он стандартизирован, некоторые внешние библиотеки js ( Relay и Apollo) воспользовались этим, что очень облегчает кеширование и определение индивидуальных запросов и мутаций в клиентской области.
Он предоставляет свою собственную структуру как так называемый Introspection API. Это означает, что вы можете документировать свой API и запрашивать его, используя сам GraphQL - он информативный. Это дает пространство для поддержки инструментов - примером этого является GraphiQL, который позволяет с легкостью исследовать схемы GraphQL. При использовании GraphQL эта функция в основном предоставляется бесплатно. Вы можете увидеть это в действии, т.е. в Github API Explorer, который также использует Ruby-реализацию GraphQL AFAIK.
Хотя большинство людей думают об этом с точки зрения запроса / ответа, оно также предоставляет возможности публикации / подписки в виде подписок GraphQL через веб-сокеты. Также в рамках стандарта.