问题标签 [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.
scala - 如何创建可以在不同字段上搜索的 graphql 架构?
我正在测试桑格利亚汽酒来构建一个 graphql/relay 服务器。我有一个非常简单的用户类:
我想允许通过 ID 或用户名进行查询。我创建了一个允许这样做的模式,但字段具有不同的名称:
不幸的是,我需要使用不同的字段名称来查询这些user
,userByUsername
例如:
或者
如何创建允许user
在 ID 或用户名上查询单个字段的架构?例如,以下两个都应该返回相同的用户对象:
或者
facebook - 中继应用程序:如何自省服务器上的模式?
我正在玩继电器入门套件。我还使用sangria创建了一个 graphql 服务器。现在我正在尝试将两者连接在一起。
在 relay-starter-kit 中,每次更改架构时,都需要运行脚本来重新生成 schema.json 文件。但是由于 graphql 支持模式自省,我想知道是否有办法配置我的中继应用程序以在服务器启动时自省服务器的模式。
有谁知道这是否可能或解决了如何做到这一点?
reactjs - 分离 graphql/relay 后端和前端
我想使用中继将我的后端和前端与不同的项目分开。我这样做的原因是因为我正在使用特定的中继/graphql 后端、桑格利亚汽酒,并且希望将前端开发与 Scala 开发分开。
是否可以在一个服务器上连接一个反应中继前端应用程序与另一个 graphql 服务器后端通信。似乎到处都是中继假设其端点与端点 /graphql 位于同一主机上
scala - 和桑格利亚一起玩 2.5
我想试试 Play with Sangria(以及 Relay 和 React)。到目前为止,我发现的 Sangria 示例适用于 Play 2.4.2,但在 Play 2.5 中似乎有一些更大的变化。等待新的 Sangria 版本会更好,还是现在更新到 Play 2.5 是否“安全”?
scala - 为任意 JSON 创建一个“解码器”
我正在使用 Finch、Circe 和 Sangria 为 API 构建 GraphQL 端点。GraphQLvariables
查询中通过的基本上是任意 JSON 对象(假设没有嵌套)。所以举个例子,在我的测试代码String
s中,这里有两个例子:
Sangria API 需要这些类型的Map[String, Any]
.
我已经尝试了很多方法,但到目前为止还无法Decoder
在 Circe 中为此编写一个。任何帮助表示赞赏。
scala - sangria graphql 查询返回 1 个元素列表
我使用桑格利亚汽酒作为 GraphQL 服务器。架构的相关部分是:
延期代码是
一切都适用于单个对象,但是当我尝试请求一个对象及其子对象时,我只会得到一个孩子回来
询问:
回复:
所以 - 这是正确的,我可以在后端看到列表的所有元素都被加载,但它们似乎没有被返回。
scala - 来自宏生成的模式
我尝试使用此处示例中的 graphql 宏生成示例模式:http://sangria-graphql.org/learn/#based-on-idl-definitions并得到“必须在模式中提供一种查询类型”。来自第 46 行的 AstSchemaMaterializer.scala。似乎它不喜欢模式中定义的 Hello 和 Yellow 查询。删除一个后,它能够正确解析示例。我也看不到为任何类型指定解析函数的方法。有没有人尝试过这样做?
谢谢!
scala - 在桑格利亚汽酒中使用 Cookie 进行身份验证
因此,已经有一个通过改变“登录”并返回身份验证令牌作为响应的一部分进行身份验证的示例 - 有没有人知道我可以如何使用安全 cookie 来代替?如果可以的话,我真的非常喜欢使用它,因为它是防止会话被我的中继应用程序上的 XSS 攻击劫持的额外障碍。我正在使用 Akka HTTP。
到目前为止我的想法:
- 在查询执行期间将上下文上的令牌值设置为可变值,然后在
map
调用中将其取出(坏) - 如示例中那样在响应上设置令牌,然后在
map
调用中修改响应以删除身份验证令牌并将其设置为 cookie(不太糟糕,但不是很好)。
有没有比我没想到的更好的东西?
scala - 如何知道 Sangria GraphQL 中对象解析器中的请求字段
我正在通过 Sangria GraphQL("org.sangria-graphql" %% "sangria" % "1.0.0-RC5") 构建 GrapQL 服务器
我不确定正常情况下是否需要它。但是为了提高性能,我想在解析过程中从客户端获取请求的字段。
例如,
如果你要求,
您的服务器可能会在 FooObject 对象解析器中解析
然后,
对象字段可以在 FooObject 对象的字段解析器中解析
然后,您可能会得到 graphql 结果
我想要做的是,在对象解析器中解析期间,给出如下所示的字段提示。
在这种情况下,我无法以某种方式提取客户端在解析器中请求的字段。该Ctx(context)
对象在我的调查中很好地显示了对象与请求无关的内容。有没有我提到的一些方法Ctx.[__COLLECT_REQUESTED_FIELDS__]()
?
我可以通过每个字段解析器尝试通过在数据库中选择一列进行查询。但是如果我已经知道请求的字段是什么,我可以在一个查询中完成它,它可以解决很多N+1
案例问题(因为顶级对象可以将所有嵌套对象带到查询中,它可能取决于数据库)
我知道仍然没有最佳实践GraphQL
。可能存在比我尝试的更好的方法。购买以了解请求的字段有利于处理数据。
如果你以某种方式知道,请告诉我。
谢谢你。
apache-kafka - 从 Kafka Consumer 返回 GraphQL JSON
我们正在使用 Sangria Graphql 来处理中继查询。从 UI 获取查询的 Graphql 代码生成一条 kafka 消息,适当的微服务使用并处理它,然后将消息发布到 Graphql 代码使用的 kafka。问题是我们的graphql消费者如何将结果映射到原始请求并将其发送回客户端?
))
callCartService 将向 kafka 生成消息以发送到购物车微服务,该微服务会将购物车消息发送回 kafka 以供 Graphql 使用。
有没有办法等待消费者阅读购物车消息并返回给客户端?