GraphQL 是一种用于 API 的查询语言,它允许客户端精确地请求需要的数据,而不是返回整个数据集。在 Ruby on Rails API 中使用 GraphQL 可以提高 API 的性能和灵活性,本文将介绍如何在 Ruby on Rails API 中使用 GraphQL。
安装 GraphQL
首先,需要在 Ruby on Rails 项目中安装 GraphQL。可以使用 gem 安装:
gem 'graphql'
然后在终端中运行:
bundle install
创建 GraphQL 类型
在 Ruby on Rails 中,GraphQL 类型与 ActiveRecord 模型相似。可以使用以下命令创建一个 GraphQL 类型:
rails g graphql:object [type name]
例如,如果要创建一个名为 UserType
的类型,可以使用以下命令:
rails g graphql:object UserType
这将创建一个名为 user_type.rb
的文件,其中包含一个名为 UserType
的类。
在 UserType
类中,可以定义 GraphQL 类型的字段。例如,以下代码定义了一个名为 name
的字段:
class Types::UserType < Types::BaseObject field :name, String, null: true end
创建 GraphQL 查询
在 Ruby on Rails 中,GraphQL 查询与控制器方法相似。可以使用以下命令创建一个 GraphQL 查询:
rails g graphql:query [query name]
例如,如果要创建一个名为 UserQuery
的查询,可以使用以下命令:
rails g graphql:query UserQuery
这将创建一个名为 user_query.rb
的文件,其中包含一个名为 UserQuery
的类。
在 UserQuery
类中,可以定义 GraphQL 查询的字段。例如,以下代码定义了一个名为 user
的字段:
-- -------------------- ---- ------- ----- ---------------- - ----------------- ----- ------ ---------------- ----- ---- -- -------- ---- --- --------- ---- --- --- --------- ------------- --- ---
创建 GraphQL Schema
在 Ruby on Rails 中,GraphQL Schema 用于定义查询的入口点。可以使用以下命令创建一个 GraphQL Schema:
rails g graphql:install
这将创建一个名为 schema.graphql
的文件,其中包含一个基本的 GraphQL Schema。
在 schema.graphql
文件中,可以定义查询的入口点。例如,以下代码定义了一个名为 user
的查询:
type Query { user(id: ID!): UserType }
使用 GraphQL Playground
GraphQL Playground 是一个交互式的 GraphQL IDE,可以用于测试和调试 GraphQL API。可以使用以下命令安装 GraphQL Playground:
rails g graphql:playground:install
然后在 config/routes.rb
文件中添加以下代码:
mount GraphqlPlayground::Rails::Engine, at: "/graphql/playground"
现在可以在浏览器中访问 http://localhost:3000/graphql/playground
来打开 GraphQL Playground。
示例代码
以下是一个完整的示例代码,演示如何在 Ruby on Rails API 中使用 GraphQL:
-- -------------------- ---- ------- - ------------------------------ ----- --------------- - ----------------- ----- ---- --- ----- ----- ----- ------ ------- ----- ---- ----- ------- ------- ----- ---- --- - ------------------------------- ----- ---------------- - ----------------- ----- ------ ---------------- ----- ---- -- -------- ---- --- --------- ---- --- --- --------- ------------- --- --- - ------------------------------------ ----- --------------------- - ----------------------- -------- ------ ------- --------- ---- -------- ------- ------- --------- ---- ----- ------ ---------------- ----- ---- ----- -------- --------- ----- ----- --- -------------- ------- ---- - -------------- ----- ------ ------ -- --------- - ----- ----- ------- -- - ---- - ----- ---- ------- ------------------------- - --- --- --- - ---------------- ----------------------------- -- ---- ----------- --- ----------------- ----- --------------------------------- --- --------------------- --- - --------------------- ----- --------------------- - --------------- ----------------------------- ----------------------- ---
结论
在 Ruby on Rails API 中使用 GraphQL 可以提高 API 的性能和灵活性。通过创建 GraphQL 类型、查询和 Schema,可以轻松地定义 API 的数据结构和入口点。使用 GraphQL Playground 可以方便地测试和调试 GraphQL API。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675fa339fc30a73a2ae57812