RESTful APIs
Suhas Palani
Posted on July 2, 2024
- Topic: "Building RESTful APIs with Node.js and Express"
- Description: How to design and build RESTful APIs using Node.js and Express.
Content:
1. Introduction to RESTful APIs
- What is REST: Explain REST (Representational State Transfer) and its principles.
- HTTP Methods: Discuss common HTTP methods: GET, POST, PUT, DELETE, PATCH.
2. Setting Up the Project
-
Project Initialization:
mkdir myapi cd myapi npm init -y npm install express body-parser
-
Project Structure:
myapi/ ├── node_modules/ ├── package.json ├── index.js
3. Creating a Simple API
-
Basic Express Setup:
const express = require('express'); const bodyParser = require('body-parser'); const app = express(); const port = 3000; app.use(bodyParser.json()); app.listen(port, () => { console.log(`API running at http://localhost:${port}`); });
4. Defining Routes
-
Sample Routes:
let books = []; app.get('/books', (req, res) => { res.json(books); }); app.post('/books', (req, res) => { const book = req.body; books.push(book); res.status(201).json(book); }); app.get('/books/:id', (req, res) => { const book = books.find(b => b.id === parseInt(req.params.id)); if (book) { res.json(book); } else { res.status(404).send('Book not found'); } }); app.put('/books/:id', (req, res) => { const index = books.findIndex(b => b.id === parseInt(req.params.id)); if (index !== -1) { books[index] = req.body; res.json(books[index]); } else { res.status(404).send('Book not found'); } }); app.delete('/books/:id', (req, res) => { books = books.filter(b => b.id !== parseInt(req.params.id)); res.status(204).send(); });
5. Testing the API
- Using Postman or Curl: Demonstrate how to use Postman or Curl to test API endpoints.
-
Example Tests:
- GET /books
- POST /books with JSON body
{"id": 1, "title": "1984", "author": "George Orwell"}
- GET /books/1
- PUT /books/1 with JSON body
{"id": 1, "title": "Animal Farm", "author": "George Orwell"}
- DELETE /books/1
💖 💪 🙅 🚩
Suhas Palani
Posted on July 2, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.