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中
- 要使用graphiql IDE,我们还需要添加
app/assets/config/manifest.js
文件
//= link graphiql/rails/application.css
//= link graphiql/rails/application.js
- 在config/application.rb中添加
require "sprockets/railtie"
然后就可以访问http://localhost:3000/graphiql
3. 修改默认目录结构
-
rails g graphql:install 后默认的目录结构如下,
rails g graphql:object note
生成 note_type在 query_type 的同一层目录 -
我们按照表名重新设置目录结构,这样schema中的目录会多一层表目录,我们该表相关的api都放在这个目录下,使结构更加清晰,否则所有query都和query_type在同一层目录,代码结构看起来比较混乱,前端看schema也比较混乱,修改结构后定义rb文件要注意module名字符合目录结构
4. 修改controller,定义current_user
文章来源:https://www.toymoban.com/news/detail-500320.html
5. 添加query查询
- 使用
rails g graphql:object note
生成 note_type.rb,给挪到output目录里
field 都是要暴露给前端的返回值,会生成在schema文档中
文章来源地址https://www.toymoban.com/news/detail-500320.html
- 代码示例
到了这里,关于[ruby on rails] rails中使用graphQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!