【发布时间】:2018-11-17 06:36:51
【问题描述】:
我是 GraphQL 的新手。很多事情让我感到困惑,比如为什么我需要一台服务器来运行 GraphQL,以及为什么某些库没有整理实现。 据我所知,服务器用于响应数据。那么它还能为 GraphQL 做什么。
【问题讨论】:
标签: graphql apollo-server
我是 GraphQL 的新手。很多事情让我感到困惑,比如为什么我需要一台服务器来运行 GraphQL,以及为什么某些库没有整理实现。 据我所知,服务器用于响应数据。那么它还能为 GraphQL 做什么。
【问题讨论】:
标签: graphql apollo-server
GraphQL 是一种用于 API 的查询语言和用于实现的运行时 这些查询与您现有的数据。 GraphQL 提供了一个完整且 API 中数据的可理解描述,为客户提供 能够准确地要求他们需要什么,仅此而已,使它 随着时间的推移更容易发展 API,并支持强大的开发人员工具。
基本上,您有一个客户端和一个服务器端。客户端向服务器请求(查询)数据,或请求服务器更新数据(突变)。如果您只在客户端工作,则不需要服务器(假设它已经存在)。
此链接也可能有帮助:https://www.apollographql.com/why-graphql
希望这有意义吗?
【讨论】:
正如您所注意到的,它“只是”一种查询语言,您不需要服务器本身。比如在参考的graphql-js实现中,可以just call graphql with a query;同样,在graphql-ruby中,你可以#execute a query on a schema object。
不过,GraphQL“在野外”的通常情况是作为 API 层。您将在本机数据库上拥有一个 GraphQL 接口,或者作为 REST API 的替代品。在这两种情况下,如果您从同一个系统调用某些东西,您通常不会通过 GraphQL 来将其转换为 SQL 等。你会直接调用数据库层。
您可以将 GraphQL 与 SQL 进行比较,其中也有 library-based implementations 但查询语言是与系统交互的唯一方式;以及 SOAP 等其他 API 层,它们使用 HTTP 作为最小传输层,但并未真正使用协议的完整表达能力。
【讨论】: