Working with Web APIs
Learn how to work with web APIs while using the CLI.
We'll cover the following
An API, or Application Programming Interface, lets developers interface with An API, or Application Programming Interface, lets developers interface with data without accessing the data directly. Web APIs let us do this by making requests to servers. APIs can let us see current weather conditions, stock prices, sports scores, social media feeds, and pretty much any data we’re looking to consume.
If we’re writing software that interfaces with a third-party web API, or if we’re developing our own, we can use cURL to explore and test that API. We can set headers, define request types, and send data payloads.
To explore this, we need an API we can work with. Instead of using a live API for testing, we use json-server
, a Node.js package that provides an API for these types of situations. Let’s set it up inside of the Ubuntu virtual machine.
Setting up Node.js
First, we use curl
to download an installation script from NodeSource that adds their repository to our system and updates the list of available packages:
cat google.html
$ curl -L -O https://deb.nodesource.com/setup_16.x
Now, we execute the installation script and install the nodejs
package:
$ sudo bash ./setup_11.x
$ sudo apt install nodejs
This installs Node.js, along with npm
, a command for installing Node.js libraries and programs, and npx
, a command that downloads and then executes applications.
We’ve already done this on our end, so you don’t need to worry about this.
Running the server
Now, we create a JSON file in our home directory called data.json
with the following content:
{
"notes": [
{ "id": 1, "title": "Hello" }
]
}
The json-server
command will use this as its data and turn it into a REST API we can query.
With the file created, we use the npx
command to run json-server
and tell it to watch the data.json
file for changes:
$ npx json-server -w ~/data.json
We’re running this with the
nohup
command so that the server runs in the background and we don’t have to initiate a new terminal session.
We make a request to http://localhost:3000/notes, and we see the notes we created in the data.json
file appear on the screen:
$ curl http://localhost:3000/notes
Run the terminal below to execute this command:
Get hands-on with 1400+ tech skills courses.