问题标签 [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.
graphql - 枚举 GraphQL 查询中的所有字段
给定Apollo Server的 GraphQL 模式和解析器以及 GraphQL 查询,有没有办法在解析器函数中创建所有请求字段(在对象或地图中)的集合?
对于一个简单的查询,很容易从info
解析器的参数重新创建这个集合。
给定一个模式:
和解析器:
使用这样的简单递归infoParser
函数:
以下查询导致此日志:
事情很快就会变得很丑陋,例如当您在查询中使用片段时:
GraphQL 引擎在执行时正确忽略重复、(深度)合并等查询字段,但它没有反映在info
参数中。当您添加联合和内联片段时,它会变得更加复杂。
考虑到 GraphQL 的高级查询功能,有没有办法构建查询中请求的所有字段的集合?
有关info
参数的信息可以在 Apollo 文档站点和graphql-js Github repo中找到。
graphql - 在 graphql 服务器中实现指令
如何实现支持这样的模式:http: //graphql.org/learn/queries/#directives
当我在参数前使用 $ 时,我得到一个解析错误
我已经尝试过直接的 graphql.js 和 graphql-tools。当我的架构中有 $ 时,我都会遇到错误。我错过了什么?
如果有参考实现或关于如何实现指令的示例(不是自定义指令,如果 $variable @include 或 $variable @skip 仅是标准指令),将会有所帮助。
graphql - 如何限制查询自省
我有一个由 apollo-server 提供支持的 node.js 项目。我使用自定义@admin
指令对查询、突变和对象字段进行权限检查。对于查询和突变,此指令会引发错误,对于字段,它返回 null 而不是实际值。
现在,我想将 graphql ui 添加到我的项目中,以便其他开发人员可以探索我的 graphql 架构。但是,我希望他们看到匿名用户看到的模式,即他们不应该知道@admin
字段和@admin
查询的存在以及所有突变(甚至是非管理员的突变)。即使那些拥有执行这些操作的凭据(即以管理员身份登录)的人也不应该看到架构的这些部分。
据我了解,graphiql 发送特殊的自省查询,其中包含显示模式__schema
及其__type
文档的字段。
是否可以以某种方式修改我的架构,该架构是使用makeExecutableSchema
from构建的graphql-tools
以实现我的目标?
graphql-tools - graphql-tools,如何使用 mockServer 模拟“突变”?
我尝试使用mockServer
ofgraphql-tools
来模拟一个Mutation
.
这是我的单元测试:
但是,出现错误:
而且,我读了graphql-tools
interface.d.ts
文件。
显然, 中没有mutation
功能mockServer
。
mockServer
支持吗Mutation
?
apollo - 如何在 Apollo graphql 中添加联合类型
我创建了这个问题以防有人对如何在 Apollo中添加联合/多态类型感到好奇。希望这将使他们更容易。
在此示例中,我希望响应为 aWorksheet
或ApiError
javascript - 有没有一种简单的方法可以在远程 graphql 模式上移动字段?
我正在尝试使用 graphql-tools for node 与远程模式集成。
我有远程模式,但不幸的是,所有查询都是在Viewer
类型而不是Query
类型上定义的。
我想用它graphql-tools
来转换模式并将一些字段从Viewer
类型移动到Query
类型。
我尝试了几种不同的方法:包括delegateToSchema
自定义解析器和ExtractField
转换,但它们没有奏效。delegateToSchema
似乎是正确的方法,但不幸的是它只能委托给根类型,而不是像Viewer
.
有谁知道我如何将一个字段添加到Query
委托给该类型上的一个字段的Viewer
类型中?
graphql - 远程 GraphQL 模式的别名类型名称
我在 graphql-tools 中使用 makeRemoteExecutableSchema 来检索远程模式,然后将其与本地模式合并。我想为远程模式上的类型名称添加一个前缀。是否有捷径可寻?
graphql - 使用身份验证的 graphql 模式拼接
我的想法是使用 graphql 和无服务器创建一个微服务方法。
我正在考虑为 dynamodb 中的每个表创建一个服务,然后创建一个 apigateway 服务,并在 apigateway 服务中使用 graphql-tool 将模式拼接在一起。
这项工作非常好,我很满意。
但现在我想为我的 graphql 查询和突变添加授权。
我在 apigateway 中添加了一个自定义 autherizer,它从客户端解析 JWT 令牌并将其发送到带有 userId 的 graphql 上下文
但现在我想为我的解析器添加授权。
最好的方法是什么?
我希望它尽可能模块化,最好(我认为)是在 apigatway 服务中添加授权,以便我的其他服务保持清洁。但我不知道怎么做?
有任何想法吗?
react-apollo - Apollo GraphQL 中的 makeExecutableSchema 和 buildClientSchema 有什么区别
我正在尝试为我们的反应客户端构建一个模拟基础设施。在两者之间感到困惑。