问题标签 [sangria]

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 投票
2 回答
426 浏览

sangria - 如何使用 Sangria 的 `@GraphQLField` 注释创建嵌套的 GraphQL 字段

我有一个简单case class MyContext(queries: Query)的方法提供给架构:sangria.schema.Schema(deriveContextObjectType[MyContext, Query, Unit](_.queries)

MyQuery是一个特征Query

这很好用。但是如果我想嵌套解析器怎么办?

这有可能实现吗?我会返回一个ObjectType[Item]具有属性statusprice用 注释的@GraphQLField吗?

0 投票
1 回答
85 浏览

graphql - 通过不同键获取相同字段的干净方法

这是问题所在。我可以通过 ID 获取成员,我的查询如下所示:

现在我需要添加更多查询来获取成员,name如下email所示

如何设计我的 graphQL 查询和架构?我的查询是否应该只有 1 个带有多个可选参数的字段?像下面

或者我应该在一个模式下有多个不同字段的查询。像下面

先感谢您。如果您需要更多详细信息,请告诉我。

0 投票
1 回答
141 浏览

scala - 获取不同类型的关系

我有以下结构:

对象 X:

ObjectY(映射表):

我正在尝试ObjectX使用objectZId以下代码获取:

然后在这里使用它:

...

...

但出现错误:

根据这个答案,我需要在 fetcher 中使用相同的类型,但是有没有办法使用不同的类型?


另一个问题是当我在 fetcher 中使用相同类型时:

我没有得到任何结果(getObjectYByX 执行,但 getObjectXByIds 没有)。

0 投票
1 回答
824 浏览

graphql - Sangria 简单的 graphQL 查询,但语法错误

我正在尝试使用 Akka Http + Sangria 实现一个带有 graphql 端点的玩具服务器。但是,当我发送带有有效负载的 POST 请求时(直接 cppy 并从 Chrome 检查粘贴)

{"query":"query FetchPokemons($height: Int) {\n pokemonsWithHeight(height: $height) {\n name\n }\n}","variables":{"height":100},"operationName ":"FetchPokemons"}

服务器报错

sangria.parser.SyntaxError:解析 GraphQL 查询时出现语法错误。输入意外结束,预期联合,注释,接口,标量,枚举,类型,输入类型或指令(第 1 行,第 79 列):“查询 FetchPokemons {\n pokemonsWithHeight(height: 100) {\n name\n }\n }"

但是在检查了 graphql 文档之后,似乎没有理由让这个查询字符串在解析阶段失败。这是我处理 http 正文的代码。

0 投票
1 回答
735 浏览

scala - 在 Sangria 中将多个延迟值组合成一个新的延迟类型,GraphQL 实现

我们有两个端点(后端调用),它们返回不同但相关的数据类型XDataYData. 如果XData存在具有 id的实例1,则必须存在具有YData相同 id的实例1

我们为每种数据类型xFetcheryFetcher. 这些获取器在我们的 GraphQL 查询中单独使用,以从两个端点获取数据,但对于某些用例,我们希望使用特定 id 组合从它们两者检索到的数据,例如1. 这种组合可能不是简单的列表追加,如下例所示。

由于XDataYData在查询的其他部分中也被单独查询,我们不能简单地将这两个解析器合并为一个,并且尽可能避免对同一端点进行多次调用。

我为此用例创建了一个简化示例。我们如何返回一个延迟值,结合从两个 fetcher 中检索到的数据?

我没怎么用过桑格利亚汽酒,所以请原谅任何与deferred resolvers或相关的不清楚的信息fetchers

0 投票
1 回答
512 浏览

graphql - 如何在 Sangria 中使用 graphql 查询过滤列表响应

我在 Sangria (scala) 上运行 graphQL 服务器。这是一个示例查询:

和示例响应:

我正在寻找过滤列表并仅返回具有mission1id 的元素的查询?

0 投票
1 回答
45 浏览

graphql - 桑格利亚查询返回 IntType

我正在尝试对我在 Sangria 中定义的本地 graphql 服务器执行查询。我有这样定义的突变:

但是,当我尝试对它执行查询时,我收到此查询的任一语法错误: mutation addMovieQuery {addMovie(title: "asd", genre: "asasdqw", IMDBLink: "$imdbLink") {}}

或者Field 'addMovie' of type 'Int' must not have a sub selection在使用括号内的 id 运行查询时

0 投票
1 回答
707 浏览

scala - Sangria 枚举输入的默认值导致“sangria.schema.SchemaValidationException:”

我正在尝试对具有可选 Enum 输入和默认值的模式执行自省查询。

下面是一个示例代码

下面是堆栈跟踪

任何帮助将非常感激!

0 投票
1 回答
58 浏览

scala - 使用枚举更新表

尝试将信息插入到如下所示的数据库中:

具有以下逻辑:

但是编译器会抛出一个错误,因为TestTable.query.map(t=> (t.id, t.enumType))它将它解释为 type Iteratable[Nothing],我错过了什么吗?


测试表如下所示:

0 投票
2 回答
642 浏览

scala - Graphql Schema 更新回滚

我们正在将我们的一些 API 移动到 graphql,并想知道处理已部署包(Schema)的回滚以及相同的最佳实践。

更具体地说,假设我们有一个包含 3 个字段的 Schema S,然后我们添加了第 4 个字段 "A" 。现在由于某种原因,我们不能继续使用这个包和字段“A”。所以我们必须执行包的回滚,以便现在模式没有字段“A”。

现在一些消费者可能会要求这个字段“A”,他可能会得到一个错误。我们当然可以要求我们的客户进行更新,但是在一段时间内我们可能会请求失败。

我们如何处理这种情况,特别是几个小时或一天内的紧急回滚?