Technology
The Tax ID Pro Team
November 27, 2022

What Is an API?

What Is an API?

API stands for Application Programming Interface. In the same way that humans interact with software through a graphical user interface (GUI), systems can interact with other systems by integrating through an API. APIs can be used to add capabilities and keep data in sync between systems.

Any time you're working with an API it is helpful to be able to explore and test as you go, to ensure your requests and responses are working as expected. There are a lot of considerations when integrating with an API, including headers, request methods, different body formats, and authentication methods. Let's take a look at a few tools that will help you explore and learn more about using APIs.

cURL

cURL was created in 1996 by a Swedish developer named Daniel Stenberg. It's easy to use, supports a wide array of protocols, and although it is not specifically designed to be a testing tool, it has always been a popular tool for quick one-off API tests. cURL comes pre-installed on most Windows, macOS, and Linux machines, so you probably already have cURL. That's a great reason to give it a try.

To do your first HTTP get request with cURL, just pop open your terminal of choice and type:

curl -i https://v3.api.taxid.pro

The -i flag tells cURL to display the response headers. This is the health check endpoint of Tax ID Pro's API service and all it does is provide a 200 OK response. Often times, there's nothing faster than typing cURL in a command prompt when you need to test something quickly, so learning some cURL basics can really speed up your development process. Check out this getting started guide and keep cURL in your toolbelt!

VS Code REST Client

Two million users can't be wrong. This VS Code plugin is popular because it makes creating and sending HTTP requests super easy, and it does it from within a text editor you might already use. As with cURL, it is not specifically designed for testing, it is more of a general-purpose exploration tool. You write the requests in your editor, where you can save them for later as a .http file. Responses appear in a separate tab.

VS Code Rest Client

This can be a great tool to reach for when you are designing an API and you have not yet solidified your API design choices. All the elements of the request are easy to see and edit quickly, as opposed to one of the GUI options below, where you may need to drill down through layers of menus to tweak one part of your request.

Postman

Now we're in testing land. Postman is a go-to testing tool for many developers. Not only is it a versatile HTTP client, it provides a robust suite of tools for API testing. This is the type of software you'll want to reach for once your API is fleshed out and you want to run regression tests to ensure uptime for your API users.

Postman

Postman has many great features:

  • Environments that allow you to set up variables and incorporate them throughout your tests. This allows you to do things like switch between development and production environments quickly so that you can write one set of tests that handle all of your deployments.
  • Test scripts that are pretty easy to write using the Chai framework and can test everything from the response status to complex relationships in the response body. Since the test scripts are just JavaScript, if there is a test Postman won't do for you out of the box, you can just write it yourself.
  • Pre-request scripts. You might use a pre-request script to generate some random data (Postman has the faker library built in) such as a random email address to test a signup endpoint. Postman uses a random data generation library to make this super easy to do.
  • Chaining requests. Sometimes you need to make a request based on the response of a previous request. This is easy enough to do by saving variables to your environment then using those values in the next request.

You'll find that the remaining tools support most of the above features, even though each tool takes a slightly different approach.

Paw

Paw is for Mac only, and it's $49.99 for a perpetual license. That will probably be a roadblock for a lot of users, considering Postman gives you most of its features for free. However, when you dig in to Paw, you'll see that it has a beautiful UI and all the built-in features you could ask for. In addition, it is a native macOS app, which means that the user experience is going to be a little smoother and a little less resource-intensive than an Electron app.

Paw

One interesting feature is the ability to migrate requests from Postman. They are really gunning for the Postman users here. cURL commands can also be imported. If you think Paw may be worth the investment to you, they offer a free 30-day trial when you click on the "Get Paw" button.

Insomnia

Insomnia is another popular choice which has many of the same features as Postman and Paw. It relies more on a plugin community for certain features, which is one of its greatest strengths, but also a weakness when compared to other software that has the features built in. Users appreciate its simpler interface, which is less overwhelming than Paw or Postman when you first open it up. If your needs are just above that of say cURL or REST Client, but somewhere below Postman or Paw, Insomnia may hit the mark for you.

By the way, did you know that Tax ID Pro offers an amazing API that makes it easy to check tax ID numbers for validity? If you want to experiment with these API tools, why don't you set up a free Tax ID Pro account and send your first request!