GraphQL Ruby с использованием NameSpace

Я использую 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??? Это было бы огромной помощью.


person K-Sato    schedule 28.03.2019    source источник


Ответы (1)


Из https://graphql.org/

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

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

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

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

person Vitor    schedule 29.03.2019
comment
Спасибо за советы и ссылки! - person K-Sato; 01.04.2019