什么是 是一种用于 的查询语言,它提供了完整且易于理解的数据描述,并使客户能够准确地询问他们需要什么(而不是得到任何无关的东西)。 例如,我们可以定义类型:假设一个 有一些字段,主要是标量,如 和 ,但也有其他复杂类型,如 。 与 不同,我们通过描述结果的形状来查询 端点: 字段可以采用类似于查询参数的参数,这些参数可以位于图的任何级别。 从上面的查询服务器返回: 这很强大,因为它为我们提供了一个客户端和服务器都可以理解的共享类型系统,同时还为我们提供了惊人的可重用性。
如果我们想在不同的屏幕上绘制我们 个最好的朋友的位置怎么办? 我们会回来的 告别定制端点,迎接类型安全、可发现、一致的 ! 与其他 服务器方法相比如何? 当您决定使用 时,您需要 墨西哥 WhatsApp 号码列表 务器库。事实证明,有几种不同的方法来定义类型 和执行查询,这是我们的 服务器的主要角色。 定义类型 我们需要为任何 服务器做的第一件事是定义类型。这允许服务器验证传入的请求并提供可以支持自动完成和其他有用功能的内省 。定义类型的三种主要方法: 自定义领域特定语言 您可以直接用您选择的编程语言构建类型树。
这对于服务器库来说是最容易实现的,但通常会导致用户编写大量代码。 在某些语言中工作得很好,但在 中它们非常冗长: 参考实现使用这种方法,许多服务器实现也效仿,使这种方法成为最常见的方法。完全动态意味着您可以根据动态输入动态定义模式。这不是一个常见的要求,但如果您需要它,这是唯一的方法。 缺点 丧失(编译时)类型安全性:大量使用开放接口 和反射。 将声明式模式定义代码与命令式解析器代码混合,使依赖注入变得困难。 与专门构建的模式定义语言相比,模式定义代码非常冗长。