GraphQL Ruby с использованием NameSpace - PullRequest
1 голос
/ 28 марта 2019

Я использую 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

Не могли бы вы дать мне ссылку на проект, который делает то, что я пытаюсь сделать с graphql-ruby ??? Это было бы огромной помощью.

1 Ответ

1 голос
/ 29 марта 2019

С https://graphql.org/

API-интерфейсы GraphQL организованы по типам и полям, а не по конечным точкам. Доступ ко всем возможностям ваших данных из единой конечной точки.

Следовательно, создание двух конечных точек, как вы предлагали, противоречило бы этому принципу. Вы, вероятно, не должны этого делать, но самое главное, в этом нет необходимости.

Предположим, у вас есть тип ProductType с парой полей. Вы можете использовать тот же тип для запроса / отображения данных о продукте на вашем веб-сайте и редактирования с мутацией на странице администратора. Конечно, вам, возможно, придется иметь дело с авторизацией некоторых конкретных запросов и мутаций, но это не должно быть сложнее, чем с авторизацией в REST.

Подробнее о Авторизация GraphQL в Ruby .

...