Node.js with Sample : Mock API using express
const express = require('express');
const app = express();
const PORT = 3000;
// Mock data
const users = [
{ id: 1, name: 'John Doe', email: 'john.doe@example.com' },
{ id: 2, name: 'Jane Smith', email: 'jane.smith@example.com' },
{ id: 3, name: 'Sam Johnson', email: 'sam.johnson@example.com' },
];
// Middleware
app.use(express.json());
// Routes
// Get all users
app.get('/api/users', (req, res) => {
res.status(200).json(users);
});
// Get user by ID
app.get('/api/users/:id', (req, res) => {
const userId = parseInt(req.params.id, 10);
const user = users.find(u => u.id === userId);
if (user) {
res.status(200).json(user);
} else {
res.status(404).json({ message: 'User not found' });
}
});
// Add a new user
app.post('/api/users', (req, res) => {
const { name, email } = req.body;
const newUser = {
id: users.length + 1,
name,
email,
};
users.push(newUser);
res.status(201).json(newUser);
});
// Update a user by ID
app.put('/api/users/:id', (req, res) => {
const userId = parseInt(req.params.id, 10);
const userIndex = users.findIndex(u => u.id === userId);
if (userIndex !== -1) {
const { name, email } = req.body;
users[userIndex] = { id: userId, name, email };
res.status(200).json(users[userIndex]);
} else {
res.status(404).json({ message: 'User not found' });
}
});
// Delete a user by ID
app.delete('/api/users/:id', (req, res) => {
const userId = parseInt(req.params.id, 10);
const userIndex = users.findIndex(u => u.id === userId);
if (userIndex !== -1) {
users.splice(userIndex, 1);
res.status(204).send(); // No content
} else {
res.status(404).json({ message: 'User not found' });
}
});
// Start the server
app.listen(PORT, () => {
console.log(`Mock API is running at http://localhost:${PORT}`);
});
No comments:
Post a Comment