问题标签 [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.

0 投票
1 回答
1340 浏览

graphql - 如何在 GraphQL SDL 中使用时间类型作为标量?

我有一个对象“业务”,我正在尝试在GraphQL中对其进行模式化。由于 Graphql 上默认不提供 DateTime 和 Time,因此我遇到了以下库:github

业务.graphql

不幸的是,图书馆只提供了一个日期时间。如何仅将“时间”(即 15:00 或 09:45)用于 closeHour 属性?有没有其他图书馆可以提供帮助?

0 投票
1 回答
63 浏览

graphql - 使用 n-deep 包装器类型堆栈获取模式

我正在通过 GraphQL 从数据库中获取数据。有两种类型:GroupPerson。组有一个字段people,它是一个Person对象列表。

我正在尝试使用 GraphQL 的内置introspection从服务器获取模式。我遇到的问题是该people字段是一个不可为空的类型,它包含一个包含一个不可为空类型的列表类型,我必须使用这个冗长的查询:

要获取此架构:

除了不方便且难以阅读的查询之外,它不是通用的,我必须知道架构中包装器类型的最大深度才能构造它。

有没有办法在模式中获取所有包装器类型,无论深度如何?

0 投票
1 回答
3585 浏览

ruby-on-rails - Graphql-ruby 如何将哈希定义为类型

是否有可能在 graphql-ruby 模式中将 Hash 定义为 Type 字段?在我的数据结构中有一个多语言字符串类型,它由作为键的语言代码和相应的文本组成。目前提供了 2 种语言,例如:

所以构建这样的类型就足够了:

提供 String 到 String 的 Map 的类型是什么样子的?相应的 typescript 界面如下所示:

更进一步,比如递归节点:

有没有办法在字段中使用它作为 graphql-ruby 模式中的 Types::NodeDescriptionType ?

0 投票
0 回答
15 浏览

graphql - 来自不受控制的 API 的 GraphQL 模式语言处理映射类型

假设我们正在使用我们无法控制的 API。该 API 返回一个映射货币/价格对的数组,如下所示:

如何在 GraphQL 模式中对此进行建模?

注意:此数据到达客户端的格式并不重要。例如,它可能是这样的:

0 投票
1 回答
326 浏览

graphql - GraphQL 模式 - 是否可以在自定义类型字段上设置约束

这是我使用的 GraphQL Schema 的简化片段。有 - 一个枚举,类型 Contributor 和类型 Review。

我想描述的是,“作者”字段不仅仅是贡献者类型的数组,而是具有特定工作角色的贡献者。在伪代码中它看起来像

有没有办法在 GraphQL Schema 中描述这个约束?

0 投票
1 回答
326 浏览

graphql - 订阅的 GraphQLObjectType

我使用 Express 实现了一个 GraphQL 服务器,但我在设置 GraphQL 订阅类型时遇到了问题。

我正在开发一个实时聊天应用程序,并试图在创建新消息后发布一个事件,但我不明白我应该如何为订阅创建一个 GraphQLObjectType。

我尝试使用“graphql-subscriptions”中的 PubSub 和 WithFilter,但我不知道该怎么做。

这是我创建的 MessageType:

和 sendMessage 突变:

0 投票
3 回答
1718 浏览

node.js - 使用 ApolloServer 从 graphql-import 迁移到仅 graphql-tools 时遇到问题,指令停止工作

我的困境始于将我的 graphql 模式从单个 .graphql 文件扩展到多个文件的简单愿望,这样我就可以更好地组织模式,因此它不会发展成一个失控的巨大文件。

我的原始布局非常简单,我在schema.graphql文件中有一个工作模式。我将能够使用importSchema('server/schema.graphql')graphql-import 库将其解析为字符串,该库现已弃用https://github.com/ardatan/graphql-import

他们提到它已合并到graphql-tools最新版本中并在此处提供迁移教程https://www.graphql-tools.com/docs/migration-from-import该教程似乎非常简单,因为他们的第一个示例几乎说明了正是我的代码的样子(除了我不使用 es6 import 但老式要求):

然后他们说要修改它,只需进行这些更改

我进行了这些更改,但重要的区别是它们不再makeExecutableSchema()在他们的示例中使用,这对我来说非常重要,因为我需要包含指令。我现在用架构做什么?我如何声明指令?他们的指令文档仍在使用makeExecutableSchema,但我不能再使用它了,因为新loadSchemaSync函数返回一个对象而不是我需要传递给的字符串typeDefs文字makeExecutableSchema

我正在使用 apollo-server,所以似乎一种可能的解决方法是在 apollo-server 构造函数中声明指令,然后将这个新schemaWithResolvers的作为模式传递

这允许我的服务器运行,并且我可以执行查询和突变,但是,我的指令不再起作用,并且我不再对受保护的查询进行身份验证。

我想要一种方法来导入我的 .graphql 文件并将其解析为字符串,这样我就可以typeDefs像以前使用 importSchema() 一样在内部使用它,或者在不使用 makeExecutableSchema() 的情况下声明我的指令,以便它们继续工作!

我已经浏览了文档并查看了其他库,到目前为止我一直很短,非常感谢任何提示或指导

0 投票
1 回答
2064 浏览

graphql-java - 如何将 JSONObject 值分配给 graphql 模式文件中的字段?

我正在使用 graphQL 和 spring boot 框架开发一个应用程序。在这里,我使用 GraphQL 的 Schema-first 方法来编写我的模式详细信息。在我的场景中,我需要将 JSONObject 和 JSONArray 作为输入分配给 Schema 文件中的几个字段。在 graphQL 模式文件中,我们不能直接将 JSONObject/JSONArray 设置为数据类型。有人可以指导我如何在 graphQL 中处理 JSONObject/JSONArray 吗?

0 投票
2 回答
1815 浏览

amazon-web-services - 对象 Amplify Schema 定义中未显示一对多关系

我是使用 GraphQL 放大的新手。我正在设置我的数据库模式并在运行放大推送后自动生成函数。

我想实现但不知道如何实现的目标

  1. 我希望能够从 getUser 返回的对象中获取具有所有连接信息(具有一对一和一对多关系)的用户
  2. 我希望仍然能够获取 userByUserName 并查看所有连接的一对多关系

调用API生成函数获取用户时,

我得到了一个用户对象,但是,它看起来像这样——尽管我确信数据库中的数据设置正确。

这个模式不包括我所有的模型定义——customStyles、defaultStyles 和其余的,但它们是一对一的关系,工作得很好。我遇到了一对多关系的问题,例如用户到 UserSocialNetwork 和用户到按钮。

我在 AWS Amplify Docs 上阅读了很多关于此的资源,浏览了一些示例,但仍然没有找到任何可以让我从 getUser 调用上的连接中获取信息并让我能够获得按用户名的用户。任何输入将不胜感激!!!

0 投票
2 回答
149 浏览

graphql - 我无法解决的 Graphql 架构设计问题

我正在尝试为应用程序设计架构,但遇到了无法解决的问题。这是应用程序的详细信息

用户 A 喜欢用户 B 用户 B 匹配用户 B 现在用户 A 和用户 B 可以开始互相聊天了。

我还跟踪谁访问了每个配置文件用户 A 由用户 B 访问 用户 A 由用户 C 访问

在应用程序中,我输入了运行应用程序的用户的详细信息。我有一个看起来像这样的 me 查询:

除此之外,我还有 listUsers 查询列出了我附近的用户,看起来像这样:

我的问题由于用户之间存在关系(LIKED_BY,MATCHED_WITH),我应该在我的模式中在哪里使用这种关系,以便它可以兑现。请记住,客户端的关系可以从 NO_RELATIONSHIP 更改为 LIKED_BY 再到 MATCHED_WITH,因此如果该关系在多个地方重复,这将是一个问题。

我真的很感激任何帮助,因为我没有想法。

提前致谢。