GraphQL 是一个用于 API 开发的查询语言和运行时,旨在改善 RESTful API 开发的痛点和缺陷。在 Ruby on Rails 中,引入和使用 GraphQL 可以实现更简洁、灵活和高效的 API 开发。
GraphQL 的优势
- 适应性强:GraphQL 可以自适应多个不同的客户端需要的数据查询和返回结构,而不是常见的从 API 获取不必要的信息或进行多次请求才能获取所需信息。
- 更好的性能:GraphQL 可以减少不必要的响应数据,减少网络传输的数据量和时间,从而提高 API 性能。
- 安全性高:GraphQL 可以通过类型检查和代码防御来减少 web 漏洞,在保持性能的同时确保更高的安全性。
在 Ruby on Rails 中使用 GraphQL
下面是在 Ruby on Rails 中安装和使用 GraphQL 的步骤:
步骤一:添加 gem 依赖
打开 Gemfile 并添加下面这行:
gem 'graphql', '~> 1.9'
然后运行 bundle install 命令来安装该依赖包。
步骤二:创建 GraphQL 目录
进入 app
目录,并创建 graphql
目录。
mkdir app/graphql
步骤三:添加查询
在 graphql
目录下创建 types
目录,并创建 query_type.rb
文件。
mkdir app/graphql/types touch app/graphql/types/query_type.rb
打开 query_type.rb
文件,并添加如下内容:
-- -------------------- ---- ------- ------ ----- ----- --------- - ----------------- ----- ------ ---------------- ----- ---- -- -------- ---- --- --------- ---- --- --- --------- ------------- --- --- ---
这个查询将获取用户ID并返回相应的用户数据。
步骤四:创建 User 类型
在 types
目录下创建 user_type.rb
文件,并添加如下内容:
module Types class UserType < Types::BaseObject field :id, ID, null: false field :username, String, null: false field :email, String, null: false field :created_at, GraphQL::Types::ISO8601DateTime, null: false end end
这个代码读取 User 模型中的数据,定义了一个 GraphQL 类型,用于包含相应的用户信息。
步骤五:创建 Schema
在 graphql
目录下创建 schema.rb
文件,并添加如下内容:
class GraphqlSchema < GraphQL::Schema mutation(Types::MutationType) query(Types::QueryType) end
这个代码将查询和突变纳入一个 schema 文件中。
步骤六:测试 API
最后,使用 GraphiQL 工具测试该 API。打开浏览器,输入以下网址:
http://localhost:3000/graphql
这里可以运行查询,如下:
{ user(id:1) { id username email created_at } }
这个查询将返回 ID 为 1 的用户的所有属性信息。
总结
本文介绍了在 Ruby on Rails 中使用 GraphQL 的方法和步骤。GraphQL 的优势主要是适应性强、性能更好和安全性更高,可以帮助我们更好地开发 API。希望本文能为您了解和使用 GraphQL 提供更多指导和帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c38cf583d39b488178e184