Вопрос проверяет знание подходов к проектированию REST API, включая именование ресурсов, использование HTTP методов и статус кодов.
REST (Representational State Transfer) — это архитектурный стиль, основанный на ресурсах. Каждый ресурс имеет уникальный URL, а действия над ним выполняются через стандартные HTTP методы. Основная цель — сделать API интуитивно понятным и предсказуемым.
Ресурсы должны быть существительными во множественном числе, например: /users, /orders. Для вложенных ресурсов используется иерархия: /users/123/orders. Избегайте глаголов в URL, так как действия определяются HTTP методом.
Правильные статус коды помогают клиенту понять результат запроса:
Чтобы не ломать существующих клиентов, API версионируют. Популярные способы: через URL (/v1/users) или через заголовок Accept: application/vnd.example.v1+json.
const express = require('express');
const app = express();
app.use(express.json());
let users = [{ id: 1, name: 'Alice' }];
// GET /users — список пользователей
app.get('/users', (req, res) => {
res.json(users);
});
// POST /users — создание пользователя
app.post('/users', (req, res) => {
const user = { id: users.length + 1, ...req.body };
users.push(user);
res.status(201).json(user);
});
// GET /users/:id — один пользователь
app.get('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ error: 'User not found' });
res.json(user);
});
app.listen(3000);Проектирование REST API по этим правилам делает его простым для понимания, масштабируемым и удобным для интеграции. Применяйте такой подход при создании публичных или внутренних API, где важна единообразная структура.