问题标签 [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 投票
1 回答
1404 浏览

scala - 如何在 sangria-graphql 中执行突变?

目前,我正在从这里学习 sangria-graphql。但是,我找不到任何有关 Mutation(添加、更新、删除)的文档。此外,谷歌不会帮助我太多。那么,你们能不能给我一些好的资源呢?

0 投票
1 回答
599 浏览

scala - 了解 Sangria-graphql 执行器

目前,我正在使用 playframework 学习 Sangria-graphql 并从这里开始学习教程。我理解Executor.execute(schema, query, new ProductRepo)接受模式、查询和上下文的执行器。另一方面,当我浏览演示示例代码时,我使用了 Executor,其中还提供了 operationName 和 Variables。例如,

我不太明白。如果变量意味着我们的查询的争论,那么查询它本身包含查询参数,例如id在下面的查询中。

另外,为什么以及如何在这种情况下操作名称是有益的?那么,任何人都可以向我解释它以及客户端如何为这些操作名称和变量提供查询请求。

0 投票
1 回答
401 浏览

scala - 了解 GraphQL / Sangria-Graphql 中服务器端的指定字段

当客户端发送请求时,我想知道客户端请求数据的字段是什么。例如,

在上述请求中,客户端请求了用户的name字段和address字段。在执行查询时,我如何知道/获取这些指定字段,即 sangria-graphql 服务器中的名称和地址?

0 投票
1 回答
271 浏览

scala - 使用 Sangria 创建资源时,将 id 排除在 GraphQL 迁移之外

我一直试图定义在我看来是一个非常基本的突变。我是 Scala、GraphQL、Akka HTTP 的新手,而且不是母语人士,所以如果下面的任何内容是胡说八道,请原谅我!很抱歉这篇冗长的文章,我确实试图用最少的例子来保持简短,但我觉得完整的上下文很重要。

语境

我有以下代码定义了一个Transaction案例类、一个用于所有事务的假数据库以及一个用于查询和创建事务的模式:

生成的 GraphQL 架构如下:

然后我可以创建一个事务并使用以下查询对其进行查询:

问题

但是,id不应该是突变的一部分。理想情况下,我会得到:

graphql-js文档中,这是通过以下方式完成的:

在 Scala / Sangria 中找到解决方案是我遇到的问题。

尝试的解决方案

尝试1:我在想这样的事情:

但这不起作用,因为createTransaction给定的 aTransactionArg映射到 a Transaction

尝试 2:我也尝试切换到,jsonFormat2因为已删除id,但这会type mismatch在编译时触发 a,因为Transaction它有 3 个属性。

尝试 3:我尝试更新派生InputObjectType以排除id使用:

这可以编译,但是当尝试运行上面给出的突变时,结果如下:

  • Argument 'transaction' has invalid value: Object is missing required member 'id'id从现场省略时createTransaction(transaction: {...})
  • Argument 'transaction' expected type 'TransactionInput!' but got: {id: 42, description: \"Electricity bill\", amount: 100}. Reason: Unknown field 'id' is not defined in the input type 'TransactionInput'.添加回来时。

我错过了什么?对我来说这似乎很简单,graphql-js但我找不到如何在 Scala 中使用 Sangria 做到这一点。我多次阅读文档并在 Google 上广泛查看,因为这似乎是一个简单的问题,但没有找到任何类似的东西。谢谢!

0 投票
2 回答
1114 浏览

scala - 我是否必须重写 Sangria 模式中的每个案例类才能在 graphQL 中公开?

想象一下,我有这个作为我的模式,人们用鸟 ID 查询,如果他们询问位置,他们会得到关于该位置的所有信息。我还需要以“模式”格式定义位置吗?或者有什么方法可以立即在这里使用案例类?

如果您想了解一下我为什么要这样做的背景知识:我有一个大规模嵌套的 JSon 模式,几乎不可能管理它的每个级别。我很高兴用户请求顶层元素,该元素将返回该阶段定义的任何案例类。

0 投票
1 回答
282 浏览

scala - SBT 任务多次执行

在 Play 项目中,SBT 任务必须在每次编译后生成一个 JSON 文件。

但是一旦编译完成,这个任务就会被执行多次。即使在编译后刷新页面,它也会执行多次。我认为在编译每个类时都会执行任务。有没有办法让任务在编译后只运行一次,而不是在页面刚刚刷新时运行?

0 投票
1 回答
2013 浏览

json - 带有 Sangria 的 GraphQL Schema

我正在查看用于在 Scala 中编写 GraphQL 服务器的 Sangria 库。然而,奇怪的是,同一个类型系统必须实现两次:(1)作为 GraphQL 类型声明的一部分,(2)也在服务器端,作为 Scala 案例类,伴随着 ObjectType、InterfaceType 等。瓦尔斯。

在 Scala 中对类型系统进行硬编码尤其令人讨厌,因为我的目的是能够对任意形状的聚合进行 CRUD,其中每个形状都被定义为 GraphQL 类型的集合。例如,假设 Shape 类型的实例包含一个 GraphQL 文档作为字段;并且 Entity 类型的实例具有对其 S​​hape 的引用,并且还包含该 Shape 中定义的形状的 Json 对象。

例如,如果形状文档是这样的:

那么实体中的 Json 内容可能是这样的:

(一个真实的例子当然也有嵌套类型等)

因此,我寻求能够定义实体类型的实例,其形状在其相应的形状中定义。我不想硬编码相应的 sangria.schema.Schema 而是想直接从形状文档中派生它。

有没有现成的方法可以从包含类型声明的 GraphQL 文档中以编程方式生成 GraphQL 模式?

0 投票
0 回答
168 浏览

graphql - 那里有 Scala.js / Relay 库吗?

在服务器端,有 Sangria,但似乎没有任何 Scala.js 的 GraphQL 库,更不用说 Relay 绑定了。我只是不够努力还是有技术问题?

0 投票
0 回答
314 浏览

scala - 递归类型问题

我定义了两种类型 Food 和 Type,其中 1 种类型有 N 种食物,我曾经lazy递归类型工作。

但我收到以下错误。

0 投票
1 回答
664 浏览

scala - 斯卡拉、桑格利亚汽酒和斯卡拉特拉

我们有一个使用 Scalatra ( http://scalatra.org/ ) 作为我们的 Web 框架的 Scala 应用程序。我想知道是否有关于如何使用 Sangria(http://sangria-graphql.org/)和 Scalatra 实现 GraphQL 端点的任何好的(或只是任何)资源?

我是 Scala 的新手,如果有任何帮助,我将不胜感激。