问题标签 [graphql-ruby]

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 回答
85 浏览

ruby-on-rails - dry-rb_autoinject 和 GraphQL

我正在尝试制作一个 GraphQL API,但也通过dry-rb_autoinject 实现依赖注入。我设法通过控制器和上下文来做到这一点。这是我的测试 QueryType。

而在 graphql_controller 我只是做

但是这个解决方案似乎并不是很好,因为我导入了所有服务,即使是那些我不需要的当前字段。有没有更好的方法,也许不是通过上下文?

0 投票
2 回答
2312 浏览

ruby - 如何使用传递给 Graphql ruby​​ 字段的参数来转换结果?

我正在寻找类似于 graphql 教程中所做的事情:https ://graphql.org/learn/queries/#arguments

我想将英尺/米传递给缩放器字段以转换返回的结果。

我不知道如何使用 graphql-ruby 在 ruby​​ 中做到这一点。

我目前有一个看起来像这样的类型:

我发现每个返回的实例都会调用解析器方法(高度)......但我不知道如何访问当前值。

谢谢

0 投票
1 回答
789 浏览

ruby - 如何覆盖 graphql-ruby 中的 camelCase 命名约定?

我正在使用出色的 graphql-ruby gem ( http://graphql-ruby.org/ )。我有一个数据结构,它基本上将 i18n 字符串存储为哈希: {'en': 'Hello', 'es': 'Hola'}. 在正常情况下工作得很好。

但是,我们只是添加了简体和繁体中文,语言代码为“zh-CN”和“zh-TW”。由于 graphql-ruby 翻译了 camelCase 中的所有输入字段,因此这些字段被翻译为“zh-cn”和“zh-tw”。

这是我的输入类的样子:

有没有办法覆盖字段和/或参数的 graphql-ruby 命名约定?我希望它完全是“zh-CN”和“zh-TW”。

0 投票
1 回答
229 浏览

ruby - graphql-ruby ObjectType vs Schema::Object

我正在为我的 GraphQL 端点编写 Rspec 测试,我注意到他们使用的对象是 Schema::Object 类型。我一直在为我的对象使用 ObjectType,这意味着我不能使用 MySchema.execute() 进行测试。

我一直试图弄清楚这两种类型之间的区别,但找不到任何东西。这让我觉得我只是对正在发生的事情有一个根本的误解?谁可以给我解释一下这个?

0 投票
1 回答
127 浏览

graphql - 解析后处理connection_type

我使用graphql gem 1.8.11。

UserTypenotifications连接字段,如果被查询,我想执行一些操作(read!在下面的示例中)。

下面的示例对所有关联字段执行操作。即使notificationsfield 有分页参数并且不是所有的notifications都被查询到,也会对 all 执行操作notifications

如何仅对查询的节点执行操作?

0 投票
1 回答
561 浏览

graphql - Graphql 复杂的布尔查询

我从您可以搜索的文档中了解通过 graphql 进行查询的原则:

但是您是否想做一些更复杂的事情,例如:

有没有办法传递这样的字符串并获得适当的结果?

0 投票
1 回答
934 浏览

ruby-on-rails - 无法理解使用带有 graphql-ruby gem 的 ActionCable 的 GraphQL 订阅

我正在尝试使用带有graphql-rubygem 的 ActionCable 来实现 GraphQL 订阅。

我从这个链接中发现需要创建客户端需要订阅的 GraphQL 通道。通常,在 ActionCable 中,我们将在动作stream_from中需要通道。subscribed但是,链接中的示例指定了一个execute带参数的方法。这个方法什么时候执行?

此外,文档说明See Apollo Client or Relay Modern了客户使用情况。是否必须使用其中任何一种,或者我可以使用咖啡脚本来订阅和更新 UI?

0 投票
3 回答
1136 浏览

ruby-on-rails - 在生产环境中禁用 GraphQL 自省请求

出于公司政策的原因,我必须禁用graphql-rubygem 的自省功能(使__schema请求失败/返回 404)。

我如何实现这一目标?

该应用程序基于 Ruby on Rails 版本 5.2.2,graphql-rubygem 版本为 1.8.12。

0 投票
0 回答
275 浏览

sql - Rails + Graphql:如何在对结果执行 graphqls 模式之前优化 sql 查询?

场地

询问

在上面的示例中,Restaurants.all最初会从表中获取所有行restaurant,然后根据查询将它们过滤掉。

这是非常低效的,因为我们可以使用查询来过滤掉实际 sql 请求中的数据:

下划线 sql 表示是

选项 A SELECT "restaurants".* FROM "restaurants" - 返回比需要更多的行

选项 B SELECT name, cuisine FROM "restaurants" - 仅返回请求的行

并不理想,因为它不适用于连接,除非明确处理。

由于我对 Ruby 和/或 Rails 还很陌生,我一直想知道这是否是一种好习惯,或者是否有其他方法可以实现这种优化?

0 投票
1 回答
104 浏览

ruby-on-rails - 连接中断包括

我有以下设置:

并运行以下查询:

产生以下 SQL 查询:

正如我们在 sql 输出中看到的那样,可以includes工作,但 graphql 不在乎,无论如何都会生成 n+1。这是正常行为吗,我被迫使用像 graphql-batch 这样的解决方案来解决这个问题,或者我的设置有什么不对?据我在互联网上看到的,includes对于这种简单的场景,使用应该就足够了,graphql 应该使用预先加载的数据而不是产生 n+1。我在这里做错什么了吗?

我在 graphql-ruby 1.7.9