问题标签 [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 回答
62 浏览

javascript - 使用 GraphQLSchema,是否有将 GraphQLObjectTypes 模块化的语法?

如何将 userThat(以及可能的其他几个相关字段)重构为其他不错的模块化文件,然后将它们包含到 root_query_type.js

这是一个普通的 node/express/graphql GraphQLObjectType 实现。

还是我注定要拥有一个巨大的 root_query_type.js ?

schema.js

root_query_type.js

0 投票
0 回答
45 浏览

graphql - GraphQL 矩阵模式不同类型

我想用这个结构从 GraphQL 服务器中检索一个矩阵:

我的实际架构是这样的

这实际上可行,但问题是我想要Google GeoChart的这些数据,并且预期的对值是第一个 String-String ( ['Country', 'Popularity']) 和下一个 String-Number ( [Germany', 200])。

此示例有 7 个列表,但服务器可以返回不同数量的列表,每个请求可以是不同的值。

使用架构调用我的端点,[[String]]所有值都正确发送,但数字被解析为字符串,我必须在前端迭代以将每个值解析为数字。

有没有办法定义类似的模式[[Any]]并且值不会被解析为字符串?

谢谢。

0 投票
0 回答
25 浏览

neo4j - GraphQL:停止 Neo4jGraphQL 在生成期间翻译我的模型

我是一位经验丰富的开发人员,但对 GraphQL 比较陌生。我使用这个 Neo4j-Tutorial 作为定位的基础,并且正在使用打字稿(后端和前端)进行开发。

谁能告诉我如何以某种方式重命名生成的端点@neo4j/graphql?相应的文档对此没有帮助。

我使用以下 GraphQL-Schema 进行演示(它是德语:“Person”表示“人”,“Tier”表示“动物”):

我首先使用gql-Function (from apollo-server) 处理模式,结果看起来确实不错。

之后,当我调用const neoSchema = new Neo4jGraphQL({ typeDefs, driver: drv })(drv 是我的 Neo4j-Driver)时,结果neoSchema.schema会在生成的端点中显示一些意想不到的命名,例如:

不知何故,德语“Person”(复数为“Personen”)被隐含地翻译为“人”。我还可以想到一些“假朋友”,这种效果更糟。

好吧,API 应该是我自己的语言(遵循 DDD),所以我想重命名这种气味,同时考虑到 api-users 和生成的客户端。这怎么可能?

谢谢!

0 投票
0 回答
48 浏览

swift - 如何在 Amplify on AWS 中编辑数据模型以获得一对零或一的基数

我在我的应用程序中使用 Amplify 将数据存储在数据库中。我有两个模型:汽车和旅行。旅行可以是向外或返回的类型。在 Amplify 生成的 Car+Schema.swift 中:

.belongsTo(Car.Outward, is: .optional, ofType: Trip.self, targetName: "carOutwardId") .belongsTo(Car.Return, is: .optional, ofType: Trip.self, targetName: "carReturnId")

在管理 UI 中,基数设置为 1:1 一一趟,用于字段OutwardReturn

关系名称 相关 基数
向外 旅行 1:1 一车一程
返回 旅行 1:1 一车一程

如果汽车仅用于去机场的外出旅行并且我想保存它,我必须在返回字段中提供旅行ID 。目前,如果没有回程,我使用虚拟旅行并存储 id。

因此,每次我保存一辆车时,都会有一次去程,但不确定是否会有回程。如何保存空的或零的回程旅行,或者我应该如何更改数据模型来实现这一点?

0 投票
1 回答
221 浏览

graphql - 我需要一个 graphql 属性的类型,它可以是两个 2 类型

所以我有一些如下代码:

但我需要它更像

我知道在打字稿中,即使不赞成您可以使用anyor number | string。graphql中有这样的东西吗?

0 投票
0 回答
32 浏览

javascript - GraphQL:如何创建模式来实现群聊和私聊功能?

背景

GraphQL在我的AWS AmplifyReactJS项目中使用。它是一个基于事件的应用程序,用户可以在其中创建参与事件。现在我正在尝试实现一个功能,让活动参与者可以在群组中和私下聊天。每个事件将有一个组,包括所有参与者作为聊天成员,以及任何给定用户的一对一私人对话。我是新手GraphQL

问题

为新的聊天功能创建适当的模式一直是一个障碍。作为一个一直在做 RESTFull API 的人,我应该如何GraphQL connections在不同的模型之间进行创建?放大文档几乎没有帮助。

  • 活动应该有聊天室吗?或聊天室有与之相关的事件?
  • 聊天室应该有成员还是用户应该有聊天室?
  • 一个用户可以有多个房间,一个房间可以有多个用户(聊天成员)。如何正确连接它们?

示例代码

  • 有一个RideEvent表格,用户可以在其中创建其他人可以参与并在群组中聊天的事件。
  • 有一个User表格存储AWS Cognito使用AWS Lambda后确认功能获取的注册用户信息。
  • Roomtable 是一个公正的聊天室,里面有成员和Messages。它还存储有关RideEvent它所属的信息。我正在尝试将其用于群组和个人聊天。
  • Message是一个存储聊天消息、聊天作者以及所属房间的表。

AWS Amplify自动生成queries和。所以我几乎不处理自己创建它们。mutationssubscriptions

这是一个示例架构:

0 投票
1 回答
164 浏览

variables - 使用 GraphQL 变量和 Next JS 过滤数组中的数据

尝试使用 GraphQL 变量和 Next JS 过滤数据。如何将我的状态传递给 GraphQL 变量 "name" ?

handleSelectedFilter 将根据所选选项更新过滤器状态。我期望过滤器状态的值传递给“名称”变量。

请记住,我们不能在 Next js getStaticProps 函数中使用反应钩子,尝试过状态管理,自定义钩子 ..etc 不适用于 Next JS。

非常感谢任何形式的帮助。提前致谢。

下面的 GrpahQL 架构

0 投票
1 回答
102 浏览

amazon-web-services - AWS-LAMBDA:没有这样的文件或目录,打开 './src/graphql/schema.graphql'

我正在练习 Graphql 和 AWS。我使用简单的无服务器框架也创建了简单的 Graphql 模式。我部署了架构(好像这个graphql.schema文件没有部署),解析器到 AWS。它成功地创建了一个 DynamoDB 表和 lambda。我可以使用 serverless-offline 通过 Graphql Playground 发出 POST/GET 请求。但问题是 api 端点不起作用。它给我看internal server error。我正在调查这个问题。从 cloud watch 我发现了我创建 Lambda 函数的本地模式并找到了graphql.schema. 这是我得到的错误"ENOENT: no such file or directory, open './src/graphql/schema.graphql'". 这是 lambda 错误图像

这是我的 lambda 函数

这是我的无服务器 YAML 文件

这是我的 webpack.config.js 设置

这是我的 tsconfig 设置

0 投票
0 回答
6 浏览

types - GraphQL - 如何将参数传递给字段的解析函数以防止重复的 HTTP 请求?

因此,我有一个 JSON 服务器数据库,其中的学生对象具有以下结构:

我使用这些组 ID 来获取该学生分配到的所有组的数据。

我的STUDENT类型是这样的:

如您所见,我发出了两个 HTTP 请求。一个用于获取我将从中获取的学生数据,groupIds另一个用于获取具有这些 ID 的组的数据。

问题是,当我获取查询的数据时,我已经发出了第一个 HTTPSTUDENT请求student。因此,当我可以使用以前的数据时,再次制作它是没有意义的。

下面是student里面的查询RootQuery

groups其中的 HTTP 请求返回与 type字段中的请求相同的数据STUDENT。所以我想以某种方式(但当然是以一种好的方式)将所有这些数据(不仅仅是类型中定义的项目STUDENT)传递给类型的groups字段STUDENT

0 投票
1 回答
49 浏览

amazon-web-services - 将 GraphQL 请求路由到不同区域的 API,服务不同的内容但使用相同的模式

我们使用 GraphQL API 在多个 AWS 区域部署后端服务。每个区域的 GraphQL 模式都是相同的,但服务提供区域特定的数据。Apollo federation 似乎没有解决这个话题,因为我们不想合并不同的模式。我们的问题也不在于选择最近的区域。客户端选择特定区域来访问该区域提供的数据。

使用 REST,反向代理可以根据路径参数将请求转发到目标区域。然而,在 GraphQL 中,所有请求都针对同一个端点。

将 GraphQL 请求路由到使用相同架构但提供不同内容的不同区域的最佳实践是什么?

编辑:也许同样重要的是要注意我们也在使用 GraphQL 订阅。如果可能的话,最好避免连接到客户端中的多个端点。