Postman is a great tool when trying to dissect RESTful APIs made by others or test ones you have made yourself. It offers a sleek user interface with which to make HTML requests, without the hassle of writing a bunch of code just to test an API's functionality.
Let’s say I wanted to make a GET request against a fan-made API for the video game Hearthstone to search for cards with “archer” in their name. If I wanted to test a GET request against this route without using Postman—instead actually writing out code in something like Flask—I would have to write out a whole new route and function to perform the request, then I would have to specify with more code what I want the response to look like, and finally I would have to print out the response to the console or provide some other way of actually viewing the response. Granted, I would probably need to write all this out anyway to make a functioning app using this API, but doing all this to simply test an API's functionality is unnecessarily tedious and time consuming when something like Postman exists.
With Postman, such a test is much more streamlined. All I have to do is plug the route into the address bar, select the GET response method on the dropdown box to its left, punch in my API key in the “Headers” section, specify that I want the response in “pretty” JSON format, and hit send. Then, I get the response data in easy-to-read JSON with a status code of 200, confirming the GET request was successful. It’s that simple!
What about making POST requests?
In the above example, I made a POST request to jsonplaceholder.typicode.com, a “fake online REST API for testing and prototyping.” Just like when making a GET request with Postman, I added the route in the address bar, but instead of choosing GET in the dropdown box, I instead chose POST. In the request body, set to “raw”, I inserted a dummy blog post in JSON format. Because this website is made for simple testing purposes, it didn’t require an API key or any other header, but if it did I would have put the key/value pairs in the “Headers” section just like I did with the earlier GET request example.
And voila! You can see below the request body the response body, which in this case gives me the id of the blog post I POSTed and a 201 status code confirming I made a successful POST request. It worked!
Postman can run PUT, PATCH, DELETE, and various other request methods as well, and also has utilities to help with developing APIs. Free and paid versions are available for Mac, Windows, Linux, and also as a Chrome app.
This post was written by Kevin Farmer, a Developer in Residence for one of DigitalCrafts' full-stack web development bootcamps. If you're ready to learn more about web development, download our course packet now.