我对GraphQL完全陌生。太多的事情让我感到困惑,例如为什么我需要一台运行GraphQL的服务器,以及为什么某些库无法整理实现。 据我所知服务器是用于响应数据。那么它将对GraphQL起到什么作用。
答案 0 :(得分:2)
GraphQL是用于API的查询语言和用于实现的运行时 这些查询与您现有的数据。 GraphQL提供了完整的 API中数据的易于理解的描述,可为客户提供 确切地要求他们需要什么的能力,仅此而已 随着时间的推移,API变得更容易开发,并启用了功能强大的开发人员工具。
基本上,您有一个客户端和一个服务器端。客户端从服务器请求(查询)数据,或请求服务器更新数据(变异)。如果您仅在客户端工作,则不需要服务器(只要已经存在)。
此链接也可能有帮助:https://www.apollographql.com/why-graphql
希望这有意义吗?
答案 1 :(得分:0)
您已经注意到,它只是一种查询语言,并且您不需要服务器本身。例如,在参考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,但查询语言是与系统交互的 only 方式;以及其他API层(例如SOAP),这些层使用HTTP作为最小传输层,但实际上并没有真正使用协议的完整表达。