问题标签 [graphql-schema]
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 - 构建 typedef 时出错 TypeError:无法读取未定义的属性“某些”
在 Apollo Server 中构建 Typedef 时出现以下错误:
我尝试从这里https://github.com/apollographql/apollo-server/issues/2961遵循一些解决方案,但仍然出现错误。
这就是我创建架构的方式:
类型.js
突变.js
index.js
有什么建议么?我会错过什么?
graphql - 在 graphql-java-tools 中禁用 GraphQL Introspection
我试图GraphQL
在我的项目中禁用 Introspection,并且对我正在使用的特定框架没有太多运气。一些文章说它可以在CcodeRegistry
模块中完成,但这是一个只读的反编译源。有没有人通过 GraphQL-java-kickstart
框架实现了这一点?
以下是我的 pom 文件中的依赖项:
node.js - 带有嵌套模式的 GraphQL 返回 null
我试图在 graphql 查询时返回一个 mongodb 文档,但得到空值。没有显示错误。mongodb 查询适用于 mongoshell 或 mongoose。
这是架构、类型定义和解析器:
Mongoshell 查询返回文档:
我怀疑我在解析器功能中做错了什么。我将不胜感激任何建议。
graphql - GraphQL 模式拼接选择集中是否禁止使用列表类型的字段?
我有一组看起来像这样的实体:
实体由 type 表示AType
。我想在一个单独的子模式中扩展这种类型,并证明可以添加分别从 和 的内容派生其值的oneToOneRelation
字段oneToManyRelation
。
以下架构实现了基于 的派生字段oneToOneRelation
,可以正常工作:
但是一旦我添加oneToManyRelation { id }
到 selectionSet 我遇到了问题:
我收到以下错误:
当我在aEntities_fromBSchema
解析器中记录 keys 参数时,似乎oneToManyRelation
根本没有被解析为数组,而是一个(空)对象:
graphql-tools
从v开始,是否禁止在键选择集中引用列表类型7.0.2
?看起来我实际上可以通过使用在 SDL 之外定义的子模式合并配置来规避这个问题(没有批处理,而是使用args
和selectionSet
配置参数),但是出于验证/网关的原因,我希望我的所有子模式都包含所有它们的类型合并指令作为 SDL 指令。
NB。这是现实世界问题的简化表示。
Nb2。在现实世界的应用程序中,我的子模式之一是我无法控制的远程 GraphQL 应用程序,因此需要在拼接层中进行一些高级定制。
编辑:只需将以下内容添加到子模式配置的合并选项中似乎可以解决问题。有人知道为什么这似乎不能用 SDL 指令重现吗?(或者这样做的好方法?)
typescript - 如何使用生成的模式获取 GraphQL 请求上下文
我需要获取身份验证标头并将其传递给我的获取。我找到了几种不同的方法来做到这一点,但想要访问上下文以便我可以抓住它。我看到的所有文档都与生成模式的打字稿方式无关。
所以问题是某人如何在您的查询/突变中获得标头值?
amazon-web-services - AWS Amplify (AppSync + Cognito) 使用每个组织/租户的动态组进行授权
我有一个具有多组织结构的 AWS Amplify 应用程序:
组织 A -> 组织 A 的内容 组织 B -> 组织 B 的内容
假设我们有用户 Alice,Alice 属于两个组织,但是,她在每个组织中都有不同的角色,在组织 A Alice 是管理员并且拥有更多权限(即:可以删除内容或修改他人的内容),而在组织B 她是普通用户。
出于这个原因,我不能简单地在 Amplify (Cognito) 上设置常规组,因为一些用户,比如 Alice,可以属于不同组织的不同组。
我认为的一个解决方案是为组织和角色的每种组合设置一个组。ie: OrganizationA__ADMIN
,OrganizationB__USER
等所以我可以使用模型上的组 auth 指令来限制对架构的访问Content
:
{allow: group, groupsField: "group", operations: [update]},
内容将有一个group
带有值的字段:OrganizationA__ADMIN
然后我可以使用Admin Queries API将用户添加到组 但是,似乎不可能动态地将用户添加到组,每次创建新组织时我都必须手动创建每个组,这几乎扼杀了我的想法。
关于如何实现我想要的结果的任何其他想法?我知道我可以添加对代码的限制,但这不太安全,我宁愿在数据库层有这个限制。
graphql - 如何为 graphQL 模式中的一个字段使用不同的标量类型?
我有一个输入类型,上面写着:
我有一种情况,字段c
可以是String
or 或Boolean
. 我如何实现c
同时接受 String
和的字段Boolean
?
graphql - 联合 GraphQL 模式验证
我在我的项目中创建了 3 个微服务并实现了 GraphQL Netflix DGS 联合框架。https://netflix.github.io/dgs/ 作为一家公司,我们拥有来自不同团队的不同微服务的 30 多个模式。但是,如果模式类型名称在不同的微服务中相互重复,我们会在 Apollo 网关中遇到运行时错误。我想知道如何验证模式?是否有任何引擎/库/概念来验证多个微服务等上的联合 GraphQL 模式?我正在检查架构注册表,但看起来它是用于存储架构和版本控制等,而不是完全验证架构。示例架构和错误:服务 1 中的架构:
服务 2 中的模式:
在上述两个模式中,模式类型“Info”在两个微服务中是相同的。通过 ApolloGateway 实现这两个服务后,它抛出运行时错误:“此数据图缺少有效配置。无法组合有效模式。发现以下组合错误:只能有一种名为“信息”的类型
angular - 放大两种类型@model之间的Mutation连接
我正在尝试将产品对象传递给发票表,所以在我的情况下,我猜它是一对多的,其中一张发票有多个产品。我试图做这样的事情:
架构:
其中为发票生成的架构我只有 id 和日期作为输入,但我还需要编写产品对象。
为 CreateInvoiceInput 生成的架构:
我试图将产品作为请求中的对象传递,但在浏览器上出现错误,即产品未在发票输入中定义。
知道如何解决这个问题吗?