问题标签 [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 回答
345 浏览

graphql - 如何从 graphql-ruby 中的 InputObject 类型继承参数?

我想从一种输入对象类型继承公共参数。

我尝试了下面的代码,但它没有工作任何人有其他解决方案?

0 投票
3 回答
3489 浏览

ruby - 如何使用 graphql-ruby 测试 GraphQL 模式?

我的目标是在 ruby​​ 中测试我的 GraphQL 模式的类型,我使用的是 graphql-ruby gem。

我找不到任何最佳实践,所以我想知道测试模式的字段和类型的最佳方法是什么。

gem 建议不要直接测试架构http://graphql-ruby.org/schema/testing.html但我仍然发现能够知道架构何时意外更改很有价值。

有这样的类型:

我的第一种方法是fields在 GraphQL::Schema::Object 类型中使用哈希,例如:

创建一个 RSpec 匹配器,我可以想出如下所示的测试:

这种方法虽然有一些缺点:

  • 匹配器中的代码取决于类 GraphQL::Schema::Object 的实现,任何重大更改都会在更新后破坏测试套件。
  • 我们在重复代码,测试断言类型中的相同字段。
  • 编写这些测试变得乏味,这使得开发人员不太可能编写它们。
0 投票
1 回答
642 浏览

ruby-on-rails - GraphQL 订阅的用例

我正在学习如何使用graphql-rubygem 在 Rails 应用程序中实现 GraphQL API。我不清楚 GraphQL 订阅的用例。

我不清楚 GraphQL 订阅和 ActionCable 之间的区别。

假设我有一个从 GraphQL API 获取数据的移动应用程序。

我可以直接使用 ActionCable 将更改发布到移动客户端吗?如果是,那我为什么要订阅 GraphQL?

0 投票
0 回答
445 浏览

graphql-ruby - `orphan_types` 是为接口指定可能的解析类型的唯一方法吗?

ruby-graphql文档对接口的解析类型进行了以下说明:

...一个模式通过遍历它的字段来找到它的类型,从querymutation开始subscription。如果一个对象永远不是字段的返回类型,而只是通过接口连接,那么它必须通过 显式连接到模式orphan_types

看这里

我有一个模块的以下定义,它有两个实现它的类:

就目前而言,我的代码与文档中的描述相匹配,因为类型Company永远Person不是模式中任何字段的返回类型,除了以接口作为其返回类型的查询。如果没有任何其他更改,GraphQL 将无法识别查询。Contactcontacts

orphan_types接口什么possible_types是工会?也许这是让我失望的命名,但orphan_types似乎是一种不应该使用的解决方法。这是正确的解决方案吗?

0 投票
1 回答
1714 浏览

ruby-on-rails - 如何在 Graphql 解析器中传递 :current_user

我有查询类型

像这样的解析器

我想在解析器中访问 c​​urrent_user,这样我就可以访问 current_user.projects 而不是 Project.all。我对graphql和学习很陌生。

一切正常,但我只需要了解如何让解析器中的 ctx 变老的整个流程。

0 投票
0 回答
423 浏览

ruby-on-rails - 试图在解析器中获取 current_user

我有一个使用和项目模型。用户有很多项目。我正在尝试了解 Graphql。

我正在使用敲门宝石进行身份验证。我正在从 graphql 控制器的上下文中传递 current_user 。

这是代码

ctx[:current_user]总是出现nil

但是当我使用 pry 调试时,它确实有当前用户,我可以毫无问题地调用 ctx[:current_user].projects 。我在这里想念什么?

需要注意的几点。我没有定义 UserType。我只有 ProjectType。但它不应该像这样工作吗?

0 投票
1 回答
999 浏览

ruby - 返回一个数组 graphQL

我目前正在尝试学习 GraphQL,但遇到了问题。问题可能是不理解编写类型的正确方法。当我的用户类型为

我能够毫无问题地返回一组工作区。现在,当我尝试返回与该工作区关联的一组用户时,问题就来了。我的工作区类型如下所示

当我尝试在获取工作区时运行查询时,我收到一条错误消息

我使用的后端是 Ruby on Rails。对于那些对 GraphQL 有一定经验的人,我希望得到反馈,告诉我我做错了什么,以及在每个模型之间连接类型的正确方法是什么。如果您需要任何额外的信息或想要澄清,请随时询问。

谢谢你。

0 投票
1 回答
8433 浏览

graphql - 有没有办法在 graphQL 中对查询进行分组?

我正在尝试对 graphQL 查询进行分组以获得更有条理的响应。

我想查询 allEmployees 并以下列格式取回一些东西

GraphQL 查询

回复

我已经研究了一些选项来通过片段上的别名来命名子请求(比如新的、更新的和删除的),但这似乎不是一回事。我看过工会,但这似乎不是我想要的。

理想情况下,我很想像...一样查询graphql

但我认为不可能传递这样的嵌套查询。

反正有做这样的事情吗?我通过 graphql-ruby gem 将 graphql 与 ruby​​ 一起使用。

如果有人需要更多信息,请告诉我?

谢谢


编辑

澄清。我们有多个实体将遵循新的、更新的、删除的模式。希望尝试在结果嵌套在父名称/别名(员工、用户)中的情况下获得响应

这就是为什么我们要嵌套

0 投票
1 回答
167 浏览

ruby - GraphQL Ruby 订阅执行初始查询

使用GraphQL Ruby是否可以让 GraphQL 订阅在订阅时也返回解析?例如:

注意:已经发现这个Subscription Type文档指定resolver 的返回值不用于数据(仅授权)。

0 投票
1 回答
145 浏览

ruby - 如何让一个字段更新/更改另一个字段?

我想得到另一个字段解析的字段。

我有一个根据一些参数生成的列表,并想更新总字段

我的方法可能是不正确的。

显然,我试图避免重新运行相同的数据库查询并在查询字符串中向上传递过滤器级别。

因此,假设我的查询使用以下 ruby​​ 类型:

我的查询是这样的: