دوره‌ها / Node.js / ساخت API (Building API)

ساخت API (Building API)

15 دقیقه Article

ساخت API: ساخت RESTful API کامل 🏗️

بیایید یک RESTful API کامل بسازیم!

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

app.use(express.json());

// GET /api/users - لیست همه users
app.get('/api/users', async (req, res) => {
    try {
        const users = await User.find();
        res.json(users);
    } catch (error) {
        res.status(500).json({ error: error.message });
    }
});

// GET /api/users/:id - یک user خاص
app.get('/api/users/:id', async (req, res) => {
    try {
        const user = await User.findById(req.params.id);
        if (!user) {
            return res.status(404).json({ error: 'User not found' });
        }
        res.json(user);
    } catch (error) {
        res.status(500).json({ error: error.message });
    }
});

// POST /api/users - ساخت user جدید
app.post('/api/users', async (req, res) => {
    try {
        const user = await User.create(req.body);
        res.status(201).json(user);
    } catch (error) {
        res.status(400).json({ error: error.message });
    }
});

// PUT /api/users/:id - به‌روزرسانی
app.put('/api/users/:id', async (req, res) => {
    try {
        const user = await User.findByIdAndUpdate(
            req.params.id,
            req.body,
            { new: true }
        );
        if (!user) {
            return res.status(404).json({ error: 'User not found' });
        }
        res.json(user);
    } catch (error) {
        res.status(400).json({ error: error.message });
    }
});

// DELETE /api/users/:id - حذف
app.delete('/api/users/:id', async (req, res) => {
    try {
        const user = await User.findByIdAndDelete(req.params.id);
        if (!user) {
            return res.status(404).json({ error: 'User not found' });
        }
        res.status(204).send();
    } catch (error) {
        res.status(500).json({ error: error.message });
    }
});

app.listen(3000);
✅ یاد گرفتید: حالا می‌دونید چطور یک RESTful API کامل بسازید!

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

تمرین: ساخت REST API کامل Hard
سوال تمرین

🎯 تمرین: Todo API

یک REST API برای Todo items بسازید با route های GET, POST, PUT, DELETE.

پاسخ تمرین
JAVASCRIPT
const express = require('express');
const app = express();
app.use(express.json());

let todos = [];
let nextId = 1;

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

app.post('/api/todos', (req, res) => {
    const todo = { id: nextId++, ...req.body };
    todos.push(todo);
    res.status(201).json(todo);
});

app.put('/api/todos/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const index = todos.findIndex(t => t.id === id);
    if (index === -1) {
        return res.status(404).json({ error: 'Not found' });
    }
    todos[index] = { ...todos[index], ...req.body };
    res.json(todos[index]);
});

app.delete('/api/todos/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const index = todos.findIndex(t => t.id === id);
    if (index === -1) {
        return res.status(404).json({ error: 'Not found' });
    }
    todos.splice(index, 1);
    res.status(204).send();
});

app.listen(3000);

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.