Mount the GraphiQL IDE in Ruby on Rails.
Installation
Add to your Gemfile:
bundle add graphiql-railsUsage
Mount the Engine
Add the engine to routes.rb:
# config/routes.rb
Rails.application.routes.draw do
# ...
if Rails.env.development?
mount GraphiQL::Rails::Engine, at: "/graphiql", graphql_path: "/your/endpoint"
end
end-
at:is the path where GraphiQL will be served. You can access GraphiQL by visiting that path in your app. -
graphql_path:is the path to the GraphQL endpoint. GraphiQL will send queries to this path.
Configuration
You can override GraphiQL::Rails.config values in an initializer (eg, config/initializers/graphiql.rb). The configs are:
-
query_params(boolean, defaultfalse): iftrue, the GraphQL query string will be persisted the page's query params -
initial_query(string, defaultnil): if provided, it will be rendered in the query pane for a visitor's first visit -
title(string, defaultnil): if provided, it will be rendered in the page <title> tag -
logo(string, defaultnil): if provided, it will be the text logo -
csrf(boolean, defaulttrue): includeX-CSRF-Tokenin GraphiQL's HTTP requests -
header_editor_enabled(boolean, defaultfalse): if provided, the header editor will be rendered -
headers(hash,String => Proc): procs to fetch header values for GraphiQL's HTTP requests, in the form(view_context) -> { ... }. For example:GraphiQL::Rails.config.headers['Authorization'] = -> (context) { "bearer #{context.cookies['_graphql_token']}" }
-
input_value_deprecation(boolean, defaultfalse): if provided, the deprecated arguments will be rendered -
should_persist_headers(boolean, defaultnil): iftrue, the headers in the editor will be persisted. Iffalse, the toggle for 'Persist headers' will not be shown in the settings
Development
- Tests:
rake test - Build JS:
yarn run build
