用途:面向构建 GraphQL API 的 Rails 开发者,帮助设计 schema、resolver 和订阅,并遵循 graphql-ruby 最佳实践。主要用于 GraphQL API 设计、schema 优化和 N+1 查询问题处理。
主要能力:设计包含类型、接口和联合(union)的 GraphQL schema;使用 graphql-batch 或 batch-loader 模式防止 N+1 查询;通过 ActionCable 集成实现订阅;使用 Pundit 或自定义策略设置授权;使用 connection 和基于游标的模式配置分页。
使用方式(基于资料示例):在 Rails 项目中以 module Types 定义对象类型(如 UserType 继承 Types::BaseObject 并声明字段);在 QueryType 中定义查询字段并支持参数与 connection_type;在 Mutations 中定义变更及 errors 字段;用自定义 Loader(继承 GraphQL::Batch::Loader)实现关联预加载并在类型字段中调用;订阅通过 AppSchema.subscriptions.trigger 触发;授权可在 BaseObject 中重写 self.authorized? 校验;分页使用 connection_type 与排序参数;错误处理通过 rescue_from 捕获 ActiveRecord::RecordNotFound;性能可配置 max_complexity 和 max_depth。
交付内容:设计 GraphQL API 时提供 schema 定义(类型、查询、变更)、N+1 预防(loader 实现)、授权(访问控制)、订阅(实时功能)以及测试(RSpec 示例)。
适用场景:Rails 项目的 GraphQL API 设计与优化、实时订阅实现、访问控制与分页配置。
限制:资料未提供安装步骤、许可、价格、支持的 Ruby/Rails 版本及具体依赖版本,这些信息暂未提供。