GraphiQL explorer
For convenience, Hydrogen includes a local GraphiQL explorer to help you create queries and learn about Shopify's Storefront API.
Anchor to RequirementsRequirements
Make sure you have the following environment variables in place:
PUBLIC_STORE_DOMAINPUBLIC_STOREFRONT_API_VERSIONPUBLIC_STOREFRONT_API_TOKEN
Anchor to GraphiQLGraphi QL
The GraphiQL interface is available by default when running the Hydrogen CLI in development mode.
Terminal
npm
npx shopify hydrogen devYarn
yarn shopify hydrogen devpnpm
pnpm shopify hydrogen devWith the development server running, navigate to the /graphiql path on your local development server (such as http://localhost:3000/graphiql).
If you're not using the Hydrogen CLI, or want to customize the GraphiQL interface, you can do so by creating a graphiql route in your project:
Optional route for GraphiQL
<root>/app/routes/graphiql.jsx
JavaScript
import {graphiqlLoader} from '@shopify/hydrogen';
import {redirect} from '@shopify/remix-oxygen';
export async function loader(args) {
if (process.env.NODE_ENV === 'development') {
// Default Hydrogen GraphiQL behavior
return graphiqlLoader(args);
}
return redirect('/');
}TypeScript
import {graphiqlLoader} from '@shopify/hydrogen';
import {redirect, type LoaderArgs} from '@shopify/remix-oxygen';
export async function loader(args: LoaderArgs) {
if (process.env.NODE_ENV === 'development') {
// Default Hydrogen GraphiQL behavior
return graphiqlLoader(args);
}
return redirect('/');
}If you’re creating your own graphiql route, then make sure it's not available in production. You can use process.env.NODE_ENV to enforce tree-shaking.
If you’re creating your own graphiql route, then make sure it's not available in production. You can use process.env.NODE_ENV to enforce tree-shaking.