问题标签 [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.
ruby-on-rails - GraphghqlController 中 current_user 的问题
我正在尝试为 in 分配一个值current_user
,GraphqlController
但它不起作用。
这是我的代码graphql_controller.rb
但current_user
仍然为空。我不知道为什么。请问你能帮我吗?
ruby-on-rails - 我可以将查询从 query_type.rb 移到他们自己的文件/类中吗?
通常,在 GraphQL/Rails 中,你有一个query_type.rb
看起来像这样的文件:
我所有的查询都在这个文件中完全实现。有没有办法做类似的事情mutation_type.rb
并将查询实现范围扩展到其他文件?也许是这样的?:
查询类型.rb:
test_field_type.rb:
ruby-on-rails - Graphql-ruby 如何将哈希定义为类型
是否有可能在 graphql-ruby 模式中将 Hash 定义为 Type 字段?在我的数据结构中有一个多语言字符串类型,它由作为键的语言代码和相应的文本组成。目前提供了 2 种语言,例如:
所以构建这样的类型就足够了:
提供 String 到 String 的 Map 的类型是什么样子的?相应的 typescript 界面如下所示:
更进一步,比如递归节点:
有没有办法在字段中使用它作为 graphql-ruby 模式中的 Types::NodeDescriptionType ?
ruby-on-rails - 我应该将与 Graphql 上的 excel 导出/导入相关的请求放在哪里?
我有一个建筑疑问。
我使用 GraphQL 作为 API 提供者,我需要开发一些 API 请求来从 excel 导入数据并将数据导出到我的项目中的 excel。
我应该在哪里使用 GraphQL API 创建它?
queries
我研究并发现可以mutations
在 GraphQL 上创建自定义...在这种情况下...
- 这应该是一个
query
? - 这应该是一个
mutation
? - 还是别的什么?
旁注:我通过graphql-ruby
gem 在我的 Ruby on Rails 项目上使用 GraphQL API,并且我还使用mongoid
gem 来处理数据库。
graphql - 为 React Admin 3.7 实现 GraphQL 数据提供程序
我正在使用 React Admin 和 GraphQL(由https://github.com/rmosolgo/graphql-ruby提供支持)建立一个项目。从表面上看,我应该实现自己的数据提供者。
查看文档,看起来 v3 的方法是返回一个由 Promises 组成的对象,例如:
但是,查看 GraphQL 数据提供程序示例,它们似乎正在使用 v2 方法。我不确定这是因为 GraphQL 数据提供者必须使用 v2 方式,还是因为它们根本没有更新。
简单地说,我想知道为什么不像上面那样返回一个对象并在每个方法中使用 Apollo 执行查询并格式化/返回结果。
我错过了什么吗?这种方式(我认为)不会运行自省查询,所以也许它有一个我不知道的缺点。
任何指针将不胜感激:)
ruby-on-rails - Ruby graphql 解析器替代方案:方法挂钩 --- 它是如何工作的?
我需要向 graphql 响应添加自定义字段,所以我考虑实现自己的自定义解析器。然而看到这个,我问自己是否真的需要一个自定义解析器:
首先,问问自己......你真的需要解析器吗?将逻辑放入解析器有一些缺点:
- 由于它与 GraphQL 耦合,因此它比应用程序中的普通 Ruby 对象更难测试
- 由于基类来自 GraphQL-Ruby,它会受到上游更改的影响,这可能需要更新您的代码
好吧,我完全同意。但我不明白以下替代方法是如何工作的。
以下是一些可供考虑的替代方案:
- 将显示逻辑(排序、过滤等)放入应用程序中的普通 Ruby 类中,然后测试该类
- 使用方法连接该对象,例如:
不幸的是,这对我来说似乎并不明显。
我有一个Request
与 有has_many
关系的模型Messages
。
我想向unread_message_count
graphql 添加字段,RequestType
但我迷路了:
ruby-on-rails - Ruby graphql 如何定义不是 Active Record 的对象类型?
我想创建一个不在 ActiveRecord 中的 MentionType。当查询 SummaryCommentType 时,我想用它返回 MentionType。但我不知道该怎么做。
我对 graphql 完全陌生。对不起我的英语不好。
这是我的代码
ruby-on-rails - 如何在graphql中使用rails Helpers?
如何在我的 /app/graphql 目录中使用 /app/helpers 目录中的 Helpers?例如,有一个数据类型是嵌套的 JSON 对象,我得到了一个 JSON Schema 文件来描述它的结构。还有一个 JsonSchemaHelper,我想用它来针对 JSON 模式验证标量类型。像那样:
验证器看起来像:
include JsonSchemaHelper
不起作用。
pagination - 带有限制的 Graphql-ruby 分页生成 n+1 个查询
想象一下,您在某事上有用户和订阅。您需要为用户的订阅进行分页。每个用户都有不同数量的订阅。这是我想到的第一件事:
但它不起作用,因为它通常对所有用户进行限制,但我们需要为每个用户。输出应该是这样的:
默认情况下,Graphql 为每个用户进行子查询以使其真实,但它是 n+1。有没有办法让它没有 n+1 并通过 cpu 和内存使用进行优化?
actioncable - 无法使用 graphql-ruby 订阅进行简单广播
我有一个准系统设置,用于通过 Action Cable 使用 graphql-ruby 更新广播。
- 客户端在订阅时收到初始有效负载。
- 客户端没有收到任何更新,并且
update
没有调用订阅类型的方法。后端没有错误。触发调用似乎被默默地忽略了。这就是我试图解决/正确理解它应该如何工作的问题。
我正在查看的文档:
- https://graphql-ruby.org/subscriptions/subscription_classes.html
- https://graphql-ruby.org/subscriptions/triggers
订阅类型:
我试图触发更新的方式:
架构定义为:
我在 config/cable.yml 中为开发环境使用了 redis 适配器:
我错过了什么?任何故障排除提示?
更新:
一些诊断:
初始(和成功)订阅调用的 Rails 日志:
检查活动的 Redis PubSub 频道:
在 Rails 控制台中运行触发器调用的结果:
显而易见的是,Redis PubSub 频道称为“graphql-event::dateTime:”,而触发器调用通过不存在的“graphql-event::serverInfo:”频道进行广播。我不明白为什么实际的 Redis 频道被称为“graphql-event::dateTime”,而订阅查询位于顶级“ServerInfo”类型。