Intro
Postman is a development tool you can use to test the calling of an API. We will demonstrate how to configure Postman with the GeoDataSource Location Search API Swagger configuration to easily setup the request to the API.
Pre-requisites
First of all, you will need to download the Postman software and install it. Next, you’ll need to go to the GeoDataSource Location Search API Swagger page at https://app.swaggerhub.com/apis/geodatasource/geodatasource-location-search/1.0 where you need to copy out the whole YAML configuration text. The YAML text is the part inside the red box below.
Configuring Postman with the YAML text
Run the Postman software and you should see the below. If you get shown the Create New dialog, you can just close it.
Click on the Import button at the top left and you should see the below. Click on Paste Raw Text in the Import dialog. Next, paste the YAML text from above then click on Import.
You should now see the following. Click on the part inside the red box. That will expand the collection to show you all available APIs.
First test of calling the API
Click on the first API which is the nearest city API. You will then see the parameters required to perform a GET request to this API. You can go ahead to delete the 2nd API.
You can just replace the values in the VALUE column of the Params section with actual values that you wish to pass to the API. Let’s test this API with a coordinate of 37.396374, -122.079566 and we will opt for a json formatted result from the API.
If you don’t have an API key, you can sign up for a free API key at http://www.geodatasource.com/web-service/location-search and you can input it like below.
Upon pressing the Send button, you will receive the json result as below.
Calling the API using a bulk input file
The previous section dealt with calling the API with a manually keyed in set of inputs. What if you have a file full of inputs you want to pass to the API? We will now show how to read inputs from a file to pass to the API.
For our example, we have a file called geotest.csv which looks like below. The CSV data file should have a header.
Before we run the bulk input file through the API, we need to create some tests to validate the results being returned from the API. Click on the Tests section and paste the following codes. The codes will test the return values of the 3 rows of input we have in our test file.
pm.test(“Location Test”, function() {
var jsonData = pm.response.json();
pm.expect(jsonData.country).to.eql(“US”);
});
To have the API work with dynamic values from the test file, we have to modify the following 2 parameters to become variables. The variable names must follow the header names in the CSV file. The 2 fields in red below have been changed to use the header names, i.e. {{longitude}} and {{latitude}}. This means the dynamic values for both fields will come from their named counterpart in the CSV file. The curly braces are required to denote that these 2 values are variables.
Now we are ready to call the API using input from the bulk input file. Inside Postman, click on the Runner button at the top left of the program. The button is enclosed in the red box inside the above image. Inside the Collection Runner window, click on the GeoDataSource Location Search collection. Next, click Select File to select the geotest.csv file from above. Then click on the blue Run button.
The test results are done and look like all 3 input lines have passed the validation test.