1

graphql-ruby在我的 Rails 应用程序中使用。目前,我的应用程序的目录结构如下所示。

app 
 - controllers 
  - application_controller.rb
  - graphql_controller.rb
  - admin
    - application_controller.rb
    - graphql_controller.rb
- graphql
  - types
  - mutations
  - graphql_schema.rb

我正在尝试制作一个简单的管理页面,但我不确定应该如何使用 graphql-ruby 来处理命名空间。

我是否也应该在Admin目录下创建目录graphql并在types其下创建mutations我想在管理页面上使用的数据?

另外,我应该为Admin下面的代码创建另一个端点吗?

Rails.application.routes.draw do
 namespace :admin do
   post :graphql, to: 'graphql#execute'
 end
 post :graphql, to: 'graphql#execute'
end

你能给我一个项目的链接吗?那将是一个巨大的帮助。

4

1 回答 1

1

来自https://graphql.org/

GraphQL API 是根据类型和字段组织的,而不是端点。从单个端点访问数据的全部功能。

因此,按照您的建议创建两个端点将违反该原则。您可能不应该这样做,但最重要的是,没有必要这样做。

假设您有一个ProductType包含几个字段的类型。您可以使用相同的类型在您的网站中查询/显示产品数据,并在管理页面中使用突变对其进行编辑。当然,您可能必须处理授权某些特定查询和突变,但这不应该比处理 REST 中的授权更难。

详细了解Ruby 中的 GraphQL 授权

于 2019-03-29T03:33:48.920 回答