Web applications 使用过滤器将数据模型公开为GraphQLAPI

Web applications 使用过滤器将数据模型公开为GraphQLAPI,web-applications,backend,graphql,Web Applications,Backend,Graphql,我已经玩了一段时间的GraphQL,使用graphqljs(javascript)和graphene(python)。 GraphQL附带了用于分页的中继规范,这对于我们的模式来说非常棒。 但我发现很难将注意力放在过滤器上 每个数据库都提供完整的查询语言(无论是SQL还是NoSQL)。 对于我们简单的web应用程序,我们只需要访问数据,所有有趣的事情都发生在客户端,这要归功于丰富的js框架 因此,在回顾了我们的一些后端应用程序之后,我所能看到的就是解析器: 解析从REST到MongoDB或SQL

我已经玩了一段时间的
GraphQL
,使用
graphqljs
(javascript)和
graphene
(python)。
GraphQL附带了用于分页的中继规范,这对于我们的模式来说非常棒。
但我发现很难将注意力放在过滤器上

每个数据库都提供完整的查询语言(无论是SQL还是NoSQL)。
对于我们简单的web应用程序,我们只需要访问数据,所有有趣的事情都发生在客户端,这要归功于丰富的js框架

因此,在回顾了我们的一些后端应用程序之后,我所能看到的就是解析器:
解析从
REST
MongoDB
SQL
的请求

我们试图向客户端提供丰富的查询,因此我们向
graphql
端点添加参数,
但是每一个新的过滤器都需要大量的工作(新代码)

REST
GraphQL
很棒,
但是,为什么不使用一种更具表现力的数据查询语言来进行更深入的研究呢?
这些限制有什么原因吗?

我们是否应该继续开发“解析器”?

为了澄清您在上面提到的一点,GraphQL规范不包括中继,也没有提到分页。事实上,GraphQL也没有指定网络层,因此使用HTTP的选择取决于实现者

那么GraphQL提供了什么:

  • 定义数据形状和关系的强类型系统
  • 用于请求部分数据的查询语言
您似乎在问为什么GraphQL不能使该查询语言更具表现力,答案是,在大多数情况下,GraphQL不关心如何从数据源(如SQL或REST客户端)检索数据,也不关心如何将数据返回给最终用户

还值得注意的是,性能查询优化是一个巨大的研究领域,在SQL之类的东西中,它被调整为访问数据的底层机制。不考虑这一点的一些原因可能与将数据存储留给实现者有关