REST APIs are the backbone of modern web and mobile applications. If you’re learning backend development, building a REST API using Node.js is one of the best places to start.
In this guide, you’ll learn how to build your first REST API in Node.js using Express.js, with simple examples you can run locally.
Prerequisites
Before starting, make sure you have:
- Basic JavaScript knowledge
- Node.js installed
- A code editor (VS Code recommended)
Check Node.js installation:
node -v
npm -v
What Is a REST API?
A REST API allows applications to communicate with each other using HTTP methods:
- GET – Fetch data
- POST – Create data
- PUT – Update data
- DELETE – Remove data
REST APIs usually return data in JSON format.
Step 1: Create a New Node.js Project
Create a folder and initialize your project:
mkdir my-first-api
cd my-first-api
npm init -y
This creates a package.json file.
Step 2: Install Required Packages
We’ll use Express.js, a popular Node.js framework.
npm install express
Optional (for auto restart):
npm install nodemon --save-dev
Step 3: Create the Server File
Create a file named index.js:
const express = require('express');
const app = express();
app.use(express.json());
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
Run the server:
node index.js
Visit 👉 http://localhost:3000
Step 4: Create Your First API Route
Add a GET API:
app.get('/', (req, res) => {
res.json({ message: 'Welcome to my first REST API!' });
});
Now open the browser:
http://localhost:3000/
You’ll see JSON output
Step 5: Create a GET API (Fetch Data)
Let’s return a list of users:
app.get('/users', (req, res) => {
const users = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Sara' }
];
res.json(users);
});
URL:
GET /users
Step 6: Create a POST API (Add Data)
app.post('/users', (req, res) => {
const user = req.body;
res.status(201).json({
message: 'User created',
user
});
});
Test using Postman or Thunder Client:
POST /users
{
"name": "Alex"
}
Step 7: Create PUT API (Update Data)
app.put('/users/:id', (req, res) => {
res.json({
message: `User ${req.params.id} updated`
});
});
Step 8: Create DELETE API
app.delete('/users/:id', (req, res) => {
res.json({
message: `User ${req.params.id} deleted`
});
});
Step 9: Test Your API
You can test APIs using:
- Postman
- Thunder Client (VS Code extension)
- curl command
Suggested Project Structure (Beginner)
my-first-api
│
|--- index.js
|--- package.json
|--- node_modules
As your app grows, you can separate routes, controllers, and services.
Best Practices for Node.js REST APIs
- Use environment variables
- Validate input
- Use async/await
- Add logging
Frequently Asked Questions
Is Node.js good for REST APIs?
Yes, Node.js is widely used…
Which framework is best for Node.js REST API?
Express.js is the most popular…
Can beginners learn REST API in Node.js?
Absolutely…
