Node.js RESTful API Development-120%

Designing RESTful APIs with Express.js:

Resource Naming: Each resource should be represented by a unique URI (Uniform Resource Identifier).

HTTP Methods: The CRUD operations on resources should be done by use of http methods namely GET, POST, PUT and DELETE.

Response Codes: Appropriate HTTP status codes should be used to indicate the outcome of API requests.

Request and Response Formats: Data sent to and received from an API should be in standard formats like JSON.

Implementing CRUD Operations:

Let's create an example RESTful API for managing a collection of books:

                                                    
                                                    const express = require('express');
const app = express();

// Middleware for parsing JSON request bodies
app.use(express.json());

let books = [
    { id: 1, title: 'Book 1', author: 'Author 1' },
    { id: 2, title: 'Book 2', author: 'Author 2' }
];

// GET all books
app.get('/books', (req, res) => {
    res.json(books);
});

// GET a specific book by ID
app.get('/books/:id', (req, res) => {
    const bookId = parseInt(req.params.id);
    const book = books.find(book => book.id === bookId);
    if (book) {
        res.json(book);
    } else {
        res.status(404).json({ message: 'Book not found' });
    }
});

// POST a new book
app.post('/books', (req, res) => {
    const { title, author } = req.body;
    const newBook = { id: books.length + 1, title, author };
    books.push(newBook);
    res.status(201).json(newBook);
});

// PUT (update) an existing book by ID
app.put('/books/:id', (req, res) => {
    const bookId = parseInt(req.params.id);
    const { title, author } = req.body;
    const index = books.findIndex(book => book.id === bookId);
    if (index !== -1) {
        books[index] = { id: bookId, title, author };
        res.json(books[index]);
    } else {
        res.status(404).json({ message: 'Book not found' });
    }
});

// DELETE a book by ID
app.delete('/books/:id', (req, res) => {
    const bookId = parseInt(req.params.id);
    const index = books.findIndex(book => book.id === bookId);
    if (index !== -1) {
        books.splice(index, 1);
        res.status(204).send();
    } else {
        res.status(404).json({ message: 'Book not found' });
    }
});

const port = 3000;
app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});

                                                    
                                                

Handling Request Parameters, Query Strings, and Request Bodies:

Request Parameters (req.params): These are used for accessing parameters within the URL path such as /books/:id.

Query Strings (req.query): These are used for accessing parameters within the URL query string e.g., /books?category=fiction.

Request Body (req.body): This is used to access data passed in the request body such as JSON data for creating or updating resources.

Hey there! Let's go for Learn fasta then! It is more than just coding; it is to have the superpower that can solve any problem. Through simple and easy-to-grasp examples you will sail through the learning process. In addition, it is not just about coding– you will acquire competencies on how to solve complex problems, analyze data, and come up with efficient solutions. Shall we start this wonderful journey together! learnfasta.com terms of use, Copyright 2025 All Rights Reserved.