[ruby on rails] rails中使用graphQL

这篇博客详细介绍了如何在Ruby on Rails项目中集成GraphQL,包括添加必要gem、生成模板文件、修改目录结构、定义current_user、创建query和mutation,以及使用graphiql IDE进行调用和测试。此外,还提供了对rails中使用GraphQL订阅的参考。
摘要由CSDN通过智能技术生成

1. 添加gem

  • gem 'graphql’是主要提供server的, gem 'graphiql-rails’是用来生成一个graphiql查询页面IDE,自己用来测试的
group :development do
  gem 'graphiql-rails'
end

gem 'graphql'

2.使用命令生成模板文件

rails g graphql:install

在这里插入图片描述

  • 在API only中,routes不会自动填充graphiql路由,rails中会自动填充,所以我们需要在routes中添加
  if Rails.env.development?
    mount GraphiQL::Rails::Engine, at: "/graphiql", graphql_path: "graphql#execute"
  end
  post "/graphql", to: "graphql#execute"
  • 在API only中
  1. 要使用graphiql IDE,我们还需要添加 app/assets/config/manifest.js 文件
//= link graphiql/rails/application.css
//= link graphiql/rails/application.js
  1. 在config/application.rb中添加require "sprockets/railtie"

在这里插入图片描述
然后就可以访问http://localhost:3000/graphiql
在这里插入图片描述

3. 修改默认目录结构

  • rails g graphql:install 后默认的目录结构如下, rails g graphql:object note 生成 note_typequery_type 的同一层目录
    在这里插入图片描述

  • 我们按照表名重新设置目录结构,这样schema中的目录会多一层表目录,我们该表相关的api都放在这个目录下,使结构更加清晰,否则所有query都和query_type在同一层目录,代码结构看起来比较混乱,前端看schema也比较混乱,修改结构后定义rb文件要注意module名字符合目录结构
    在这里插入图片描述

4. 修改controller,定义current_user

在这里插入图片描述

5. 添加query查询

  • 使用 rails g graphql:object note 生成 note_type.rb,给挪到output目录里

field 都是要暴露给前端的返回值,会生成在schema文档中
在这里插入图片描述

  • 代码示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值