DEV Community

Shawn2208
Shawn2208

Posted on

Creating a Simple Book API with Express.js

Hello! In this article, we'll be creating a simple book API using Express.js. This API can be the foundation for building more complex projects such as a book review site, a library catalog, or even a bookstore.

Prerequisites:
Basic knowledge of JavaScript.
Node.js installed on your pc.

Setting Up:
Start by creating a new directory for your project and initializing a Node.js application:

mkdir book-api && cd book-api
npm init -y

Enter fullscreen mode Exit fullscreen mode

Next, let's install the required packages:

npm install express

Enter fullscreen mode Exit fullscreen mode

The Code:
Create an index.js file. This will house our server and routes:

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

app.use(express.json());

let books = [];

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

app.post('/books', (req, res) => {
    const { title, author } = req.body;
    const newBook = { id: Date.now(), title, author };
    books.push(newBook);
    res.status(201).json(newBook);
});

app.put('/books/:id', (req, res) => {
    const bookId = Number(req.params.id);
    const { title, author } = req.body;

    const bookIndex = books.findIndex(book => book.id === bookId);
    if (bookIndex === -1) return res.status(404).json({ message: "Book not found" });

    books[bookIndex] = { id: bookId, title, author };
    res.json(books[bookIndex]);
});

app.delete('/books/:id', (req, res) => {
    const bookId = Number(req.params.id);
    books = books.filter(book => book.id !== bookId);
    res.status(204).end();
});

app.listen(3000, () => {
    console.log('Server running on http://localhost:3000');
});

Enter fullscreen mode Exit fullscreen mode

Testing the API:
You can test this API using tools like Postman or by integrating it into a frontend application.

Conclusion:
Building a basic API with Express.js is straightforward. This simple book API is just the beginning. You can expand it by adding more features, integrating a database, and implementing authentication and authorization.

I hope you found this basic introduction to building an Express.js API helpful! If you enjoyed this guide and would like to delve deeper, give this article some ❀️ (likes). If we get enough interest, I'll create a follow-up post where we'll integrate a database and add authentication to our book API. This way, we can further enhance its features and make it more robust.

Top comments (0)