问题标签 [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.
sangria - 如何使用 Sangria 的 `@GraphQLField` 注释创建嵌套的 GraphQL 字段
我有一个简单case class MyContext(queries: Query)
的方法提供给架构:sangria.schema.Schema(deriveContextObjectType[MyContext, Query, Unit](_.queries)
MyQuery
是一个特征Query
这很好用。但是如果我想嵌套解析器怎么办?
这有可能实现吗?我会返回一个ObjectType[Item]
具有属性status
并price
用 注释的@GraphQLField
吗?
graphql - 通过不同键获取相同字段的干净方法
这是问题所在。我可以通过 ID 获取成员,我的查询如下所示:
现在我需要添加更多查询来获取成员,name
如下email
所示
如何设计我的 graphQL 查询和架构?我的查询是否应该只有 1 个带有多个可选参数的字段?像下面
或者我应该在一个模式下有多个不同字段的查询。像下面
先感谢您。如果您需要更多详细信息,请告诉我。
scala - 获取不同类型的关系
我有以下结构:
对象 X:
ObjectY(映射表):
我正在尝试ObjectX
使用objectZId
以下代码获取:
然后在这里使用它:
...
...
但出现错误:
根据这个答案,我需要在 fetcher 中使用相同的类型,但是有没有办法使用不同的类型?
另一个问题是当我在 fetcher 中使用相同类型时:
我没有得到任何结果(getObjectYByX 执行,但 getObjectXByIds 没有)。
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 正文的代码。
scala - 在 Sangria 中将多个延迟值组合成一个新的延迟类型,GraphQL 实现
我们有两个端点(后端调用),它们返回不同但相关的数据类型XData
和YData
. 如果XData
存在具有 id的实例1
,则必须存在具有YData
相同 id的实例1
。
我们为每种数据类型xFetcher
和yFetcher
. 这些获取器在我们的 GraphQL 查询中单独使用,以从两个端点获取数据,但对于某些用例,我们希望使用特定 id 组合从它们两者检索到的数据,例如1
. 这种组合可能不是简单的列表追加,如下例所示。
由于XData
和YData
在查询的其他部分中也被单独查询,我们不能简单地将这两个解析器合并为一个,并且尽可能避免对同一端点进行多次调用。
我为此用例创建了一个简化示例。我们如何返回一个延迟值,结合从两个 fetcher 中检索到的数据?
我没怎么用过桑格利亚汽酒,所以请原谅任何与deferred resolvers
或相关的不清楚的信息fetchers
graphql - 如何在 Sangria 中使用 graphql 查询过滤列表响应
我在 Sangria (scala) 上运行 graphQL 服务器。这是一个示例查询:
和示例响应:
我正在寻找过滤列表并仅返回具有mission1
id 的元素的查询?
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 运行查询时
scala - Sangria 枚举输入的默认值导致“sangria.schema.SchemaValidationException:”
我正在尝试对具有可选 Enum 输入和默认值的模式执行自省查询。
下面是一个示例代码
下面是堆栈跟踪
任何帮助将非常感激!
scala - 使用枚举更新表
尝试将信息插入到如下所示的数据库中:
具有以下逻辑:
但是编译器会抛出一个错误,因为TestTable.query.map(t=> (t.id, t.enumType))
它将它解释为 type Iteratable[Nothing]
,我错过了什么吗?
测试表如下所示:
scala - Graphql Schema 更新回滚
我们正在将我们的一些 API 移动到 graphql,并想知道处理已部署包(Schema)的回滚以及相同的最佳实践。
更具体地说,假设我们有一个包含 3 个字段的 Schema S,然后我们添加了第 4 个字段 "A" 。现在由于某种原因,我们不能继续使用这个包和字段“A”。所以我们必须执行包的回滚,以便现在模式没有字段“A”。
现在一些消费者可能会要求这个字段“A”,他可能会得到一个错误。我们当然可以要求我们的客户进行更新,但是在一段时间内我们可能会请求失败。
我们如何处理这种情况,特别是几个小时或一天内的紧急回滚?