问题标签 [graphql-tools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
384 浏览

graphql - GraphQL:未知指令包括

我正在练习在 Nodejs 中使用带有 Graphql 的指令。在 Playground 中我想使用 @include 指令时,Graphql 客户端告诉我:“未知指令包含”。这是我的代码:

在我的查询变量中,我有:

但我收到以下错误:

我究竟做错了什么?

0 投票
1 回答
287 浏览

apollo-server - 如何将 GraphQLObjectType 与 graphql-tag 和 gql-tag 创建的模式结合起来?

我使用 graphql-tag 和 apollo-server-express 来连接为 api 构建 graphQL 端点。目前我创建这样的架构定义:

属性.js

和 server.js

但是我想根据数据库模式自动创建类型“属性”。我发现我可以像这样创建一个 GraphQLObjectType:

但我不知道如何将其与

创建最终架构。有人可以指出我正确的方向吗?非常感谢任何帮助。提前非常感谢!

0 投票
1 回答
392 浏览

typescript - 如何使用 graphql-tools 从两个源位置加载 GraphQL 模式?

我想从不同的位置(本地应用程序和公共模块)加载 graphql 模式。我愿意:

但似乎只加载了第一个位置的模式。我收到一个错误

错误:未知类型“GetExternalConfluencePage”。

它在第二个位置的 .graphql 文件中定义。如果我将此文件从第二个位置移动到第一个位置,它将起作用。

.graphql 文件的内容是:

第一个位置的 .graphql 文件包含:

任何提示可能是什么问题?

0 投票
1 回答
186 浏览

graphql - Apollo Server 是否可以与 GraphQL 工具stitchSchemas 一起使用?

根据阿波罗文档

  • “Apollo Server 2 导出了所有的 graphql-tools,因此可以直接从 Apollo Server 导入 makeExecutableSchema 等功能。”
  • “Apollo 服务器能够接受由 graphql-tools 启用的模式”

但是,我刚刚注意到我不能直接从 apollo-server 导入stitchSchemas(我一直在使用它来自@graphql-tools/stitch),并且我已经陷入了几个小时没有意义的问题。

Apollo 是否适用于stitchSchemas?

0 投票
1 回答
124 浏览

graphql - GraphQL 模式拼接选择集中是否禁止使用列表类型的字段?

我有一组看起来像这样的实体:

实体由 type 表示AType。我想在一个单独的子模式中扩展这种类型,并证明可以添加分别从 和 的内容派生其值的oneToOneRelation字段oneToManyRelation

以下架构实现了基于 的派生字段oneToOneRelation,可以正常工作:

但是一旦我添加oneToManyRelation { id }到 selectionSet 我遇到了问题:

我收到以下错误:

当我在aEntities_fromBSchema解析器中记录 keys 参数时,似乎oneToManyRelation根本没有被解析为数组,而是一个(空)对象:

graphql-tools从v开始,是否禁止在键选择集中引用列表类型7.0.2?看起来我实际上可以通过使用在 SDL 之外定义的子模式合并配置来规避这个问题(没有批处理,而是使用argsselectionSet配置参数),但是出于验证/网关的原因,我希望我的所有子模式都包含所有它们的类型合并指令作为 SDL 指令。

NB。这是现实世界问题的简化表示。

Nb2。在现实世界的应用程序中,我的子模式之一是我无法控制的远程 GraphQL 应用程序,因此需要在拼接层中进行一些高级定制。

编辑:只需将以下内容添加到子模式配置的合并选项中似乎可以解决问题。有人知道为什么这似乎不能用 SDL 指令重现吗?(或者这样做的好方法?)

0 投票
0 回答
89 浏览

graphql - 使用 FIELD_DEFINITION 和 ARGUMENT_DEFINITION 上的自定义架构指令限制访问

我想使用以下架构实现自定义架构指令:

当未经授权的请求者请求该字段或使用参数执行查询/变异时会引发错误。

例如,使用以下架构:

我希望解析器抛出错误以User键入请求以下突变的请求者。

因为 field1 需要ADMIN用户类型。

我已经实现了指令的字段定义部分:

但是,我坚持使用参数定义部分。由于我想要的是根据给定的字段参数在执行字段解析器之前抛出一个错误,我认为我应该对新fieldResolver函数做一些事情。但是我找不到如何知道新函数@authorized中哪些参数用指令修饰。fieldResolver

0 投票
1 回答
85 浏览

graphql - graphql 工具 addSchemaLevelResolver 函数的工作原理

据我了解 addSchemaLevelResolver 函数在模式上添加一个根级解析器并切断所有其他解析器。我尝试了如下方法。

是的,当第一次调用架构上的某些查询或突变时,此函数会解析并抛出错误。但在那之后,它并没有像我预期的那样抛出错误,也没有阻止架构中的解析器。此功能仅适用于第一次调用还是错误或我做错了?

0 投票
0 回答
75 浏览

javascript - RangeError:超过了 docker 容器内用于 graphql 工具的最大调用堆栈大小

我已经用 node:12.19.0 构建了一个 docker 映像。我可以毫无问题地构建图像。但是当我尝试运行它时,我得到了

我有图形工具 6.2.4。但有趣的是我可以在没有 docker 的情况下运行应用程序。仅当我尝试在 docker 上运行它时才会出现此问题。我的码头文件是

我几乎尝试了互联网上的所有答案,但对我没有任何帮助。请帮我解决一下这个。提前致谢。

0 投票
0 回答
206 浏览

javascript - 无法找到以下指针的任何 GraphQL 类型定义:使用 graphql-tool 的 JsonFileLoader 时

当使用带有以下 schema.json 的 graphql-tools JsonFileLoader时:

我收到以下错误:

这是我的代码:

复制 repo 在这里,更具体地说,我使用 JSONFileLoader 的测试在这里

编辑:我使用@graphql-codegen/cli's introspection 插件生成一个新的 JSON,你可以在这里找到它。

将其加载到我的测试中时,我收到类似的错误:

0 投票
0 回答
430 浏览

reactjs - 在开玩笑测试中使用 graphql-tools 的 addMocksToSchema 不适用于“@apollo/client”中的 gql

我正在尝试在 Apollo Client 的开玩笑测试中使用graphql-tools'saddMocksToSchema函数,以允许我通过返回我可以为自己定义的模拟数据来测试查询 Apollo 的组件。但是,使用useQuery.

我有一个UserButton按钮,我正在尝试为其编写测试。组件如下:

这是我的测试:

ApolloMockingProvider基于以下文章,其代码如下:

传入的 ' 对象应ApolloMockingProvider为'测试返回 'John Smith's Button' 。但是,相反,我得到了未定义的错误消息,如下所示:globalMockschemaWithMocksUserButtonRenders with first and last name.userData

有人知道这里的错误是什么吗?复制repo 在这里,失败的测试位于这里

编辑:

我添加loadinguseQueryin UserButton 但仍然得到相同的undefined错误。

并相应地改变了UserButton.test.jsx测试:

但我得到的错误仍然userDataundefined