In this tutorial, we’ll walk through the process of creating a simple API using Node.js and Express, two popular tools for server-side development. This guide is based on a live coding session we ran for our internal team, where we explored how to build a functional API from scratch, highlighting key concepts and best practices for beginners.

Setting Up a Basic Server with Node.js

Before diving into Express, let’s look at how to set up a basic server using Node.js’s native http module. This approach allows us to see the raw functionality of a server, though it’s not typically used in real-world projects due to its complexity.

1. Install Node.js:

If you don’t have Node.js installed yet, download and install it from nodejs.org.

   

2. Create a Simple Server:

 

This code sets up a basic HTTP server that listens on port 3000. When accessed, it responds with a simple JSON object. While this approach works, it can quickly become cumbersome for more complex applications.

 

Why Use Express?

Express is a web framework for Node.js that simplifies routing, middleware management, and request handling. With Express, we can create more maintainable APIs with less effort. Let’s move to Express and build a more structured API.

Installing Express

To get started with Express, we need to install it using npm (Node Package Manager). In your project folder, run:

npm init -y

npm install express

Now, we can create an Express server that’s easier to manage than the native http server.

Creating a Basic API with Express

Here’s how to set up a simple API using Express:

1. Set Up the Express Server:

   Create a new file, server.js, and add the following code:

   In this example, we’re creating an Express server that responds with "Hello World from Express!" when accessed via the root URL (/). You’ll notice that this is much simpler than the native http module.

2. Add JSON Parsing Middleware:

   To handle JSON requests, we’ll add a middleware that parses incoming JSON data:

   app.use(express.json());

   This line enables the server to accept and process JSON data from client requests, which is essential for modern APIs.

Adding Routes for a Simple API

Let’s build a basic API that serves information about artists and albums. We’ll create two endpoints: one for fetching a list of albums and one for fetching a list of artists.

1. Define Sample Data:

   First, create some sample data for artists and albums:

2. Create Routes:

   Now, let’s define routes that return these data when users access specific URLs.

   When a user navigates to /albums, they’ll receive a JSON response containing the list of albums. Similarly, /artists will return a list of artists.

Handling POST Requests

In addition to retrieving data with GET requests, APIs often need to accept data from users. We can handle this by using the POST method. Let’s allow users to add new artists to our list.

1. Create a POST Route:

  

  This route listens for POST requests to /artists. It expects the request body to contain the new artist’s data, which is then added to the artists array. We respond with a 201 Created status and return the new artist data.

2. Testing the API:

   Use a tool like Postman or cURL to test the API. For example, to add a new artist via POST, send a request with a JSON body:

By using Node.js and Express, we’ve created a basic API that can handle both GET and POST requests, making it easy to retrieve and add data. This tutorial covers the fundamental concepts, including setting up a server, defining routes, and handling JSON data. As you continue to build more complex APIs, Express will allow you to manage routing and middleware with ease, making it a powerful tool for web development.

In future tutorials, we’ll cover more advanced topics like user authentication, connecting to a database, and deploying your API to the cloud. Stay tuned for part 3 of this series coming soon!