March 18, 2021

How to use GraphQL with Postman – Postman testing with GraphQL

Khalil Stemmler

Khalil Stemmler

When building out APIs on the web, we’ll often find ourselves in the situation where we need to quickly verify that the route or API call we just created works the way we intend it to.

If you’re not using Apollo Explorer to test your GraphQL API (our free GraphQL IDE in Apollo Studio), another option is Postman. It works as a great tool for testing any HTTP endpoint – that means GraphQL too.

In this short post, we’ll walk through how to manually test your GraphQL API using Postman.

Getting started

Prerequistes

  • You have Git installed
  • You have NPM and Node.js (8+) installed
  • You have the Postman Agent installed or a Postman account
  • You understand the basics of GraphQL (you can read “What is GraphQL? GraphQL Introduction” to get up to speed)

Clone, install, and start the server

We’re going to use the discography example from apollo-server-starter.

To pull the code from GitHub and start the server, paste the following command into a terminal on your machine.

git clone https://github.com/apollographql/apollo-server-starter
cd apollo-server-starter 
npm install && npm run start:example discography

If you see the following, your server is up and running:

🚀 Server ready at http://localhost:4000/

Review the schema

Let’s review our schema before we get into it. In the discography schema, you’ll find definitions for albums, tracks, and artists — and two queries that return either all albums, or a specific one.

enum Genre {
  Pop,
  Rock,
  Alternative
  HipHop
}

type Track {
  title: String!
  number: Int!
}

type Artist {
  name: String!
}

type Album {
  title: String!
  artist: Artist!
  tracks: [Track!]!
  genre: Genre!
}

type Query {
  albums(genre: Genre): [Album!]!
  album(title: String!): Album
}

Writing a GraphQL Request with Postman

The first query we’ll write is one that fetches all albums.

We begin by opening postman and selecting the option to write a new query.

Next, we begin the query by first writing the URL of the request. In our case, that’ll be @ http://localhost:4000/.

Then, we’ll change the method to POST — this is necessary since all GraphQL operations work on top of the HTTP POST method.

And then we’ll formulate the body of the request.

Click the selection that says Body and then choose GraphQL in the selection list below it. You’ll be presented with a Query and a GraphQL Variables window.

Within this Query window, let’s write our query. Write or paste this code into it.

query GetAllAlbums {
  albums {
    title 
    artist {
      name
    }
    tracks {
      title 
      number
    }
    genre
  }
}

Finally, let’s click the blue Send button at the top right.

It all goes well, you should see the query results in the Response window at the bottom of the page.

That’s how you write GraphQL queries using Postman!

Including variables

Just as often as we need to write queries that return data, we need to pass in variables to apply sorting and filtering through our data so that we can see relevant data.

To add GraphQL variables, we use the window of the same title on the right hand side.

Let’s use the albums(genre: Genre!) query and filter in on the list of albums by a particular genre.

First, we modify the query by giving it the the Variable Definitions necessary to make this query. Paste the following into the Query window.

query GetAllAlbums ($genre: Genre) {
  albums (genre: $genre) {
    title 
    artist {
      name
    }
    tracks {
      title 
      number
    }
    genre
  }
}

Then, in the GraphQL Variables window, we need to supply it with the data that we want to use as arguments.

Let’s filter in on albums with the HipHop genre. Paste the following into the GraphQL Variables window.

{
    "genre": "HipHop"
}

Your windows should look like this:

And when you’re ready, click the blue Send button again.

Looking at the results in the Response window at the bottom, it looks like we only got a single album back: “Paul’s Boutique” (good album 👍 ).

And that’s all there is to it.

Conclusion

When you’re building out your GraphQL API, it’s a good idea to use a GraphQL IDE to test out your GraphQL operations. Keeping those feedback loops tight helps so that you can verify that things are working the way they should be. And since GraphQL works on top of HTTP, you can use Postman to manually test your API.

Get started with Apollo Explorer

Apollo Explorer is a free cloud GraphQL IDE that we built from the ground up, specifically for GraphQL developers.

The Explorer comes with productivity-boosting features like one-click query building, intelligent search, and the ability to extract variables and fragments.

Apollo Explorer also comes with development graphs, which enables you to build, test, and document your schema changes locally, as well as preview graph changes in local branches and PRs.

To use Apollo Explorer, head over to studio.apollographql.com/dev to get started with your first development graph.

Happy querying!

Written by

Khalil Stemmler

Khalil Stemmler

Read more by Khalil Stemmler