Exercise: The ideal developer experience
Using Apollo Explorer as a React component directly in your idp.
Using npx create-react-app . --template typescript
as a starting point, install the use-deep-compare-effect
and @apollo/explorer
packages.
Next, embed explorer into the App.tsx
file:
import React from "react";import logo from "./logo.svg";import "./App.css";import { ApolloExplorer } from '@apollo/explorer/react';export function EmbeddedExplorer() {return (<ApolloExplorerclassName="explorer"graphRef='Retail-Supergraph-6bnnli@current'persistExplorerState={false}initialState={{document: `query ExampleQuery {listAllProducts {title}}`,variables: {},headers: {},displayOptions: {showHeadersAndEnvVars: true,docsPanelState: 'open',theme: 'light',},}}/>);}function App() {return (<div className="App"><EmbeddedExplorer /></div>);}export default App;
Now run the project and see explorer load in the browser 🎉
Authoring operations with vs code extension
Download the Apollo VS Code extension
Create a apollo.config.js
file at the root of your project and configure it for our graph:
module.exports = {client: {name: 'Retail-Supergraph-6bnnli',includes: ['./src/operations/**.graphql','./src/**.graphql', './src/**/*.js', './src/**/*.tsx'],}};
Create an API key for our graph and add to a .env
in at the root of your project:
APOLLO_KEY=service:Retail-Supergraph-6bnnli:76g8uino9.........
Verify you get auto-completion for writing an operation in your App.tsx. Install @apollo/client
to use gql
tags or create a .graphql
file in the src
folder:
import { gql } from "@apollo/client";const MY_OPERATION = gql`query {}`
Solutions
Share your questions and comments about this lesson
Your feedback helps us improve! If you're stuck or confused, let us know and we'll help you out. All comments are public and must follow the Apollo Code of Conduct. Note that comments that have been resolved or addressed may be removed.
You'll need a GitHub account to post below. Don't have one? Post in our Odyssey forum instead.