Вопрос проверяет знание основных HTTP-методов, используемых в REST API, и их семантического назначения для корректного проектирования API.
REST API использует стандартные HTTP-методы для выполнения операций над ресурсами, что делает интерфейс предсказуемым и соответствует принципу единообразного интерфейса. Каждый метод имеет строго определённую семантику, которую клиенты и серверы должны соблюдать для корректной работы.
Рассмотрим простой пример API для управления списком задач (To-Do).
// Получить список всех задач
fetch('/api/tasks', { method: 'GET' });
// Создать новую задачу
fetch('/api/tasks', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ title: 'Новая задача' })
});
// Полностью обновить задачу с id=1
fetch('/api/tasks/1', {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ title: 'Обновлённая задача', completed: true })
});
// Удалить задачу с id=1
fetch('/api/tasks/1', { method: 'DELETE' });
// Частично обновить задачу с id=1 (только поле completed)
fetch('/api/tasks/1', {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ completed: true })
});Правильное использование HTTP-методов критично для создания понятных, поддерживаемых и масштабируемых API. Это позволяет разработчикам и инструментам (например, Swagger/OpenAPI) автоматически генерировать документацию и клиентские библиотеки. Соблюдение семантики методов также важно для кэширования (особенно GET-запросов) и безопасности.
Вывод: Используйте стандартные HTTP-методы (GET, POST, PUT, DELETE, PATCH) в соответствии с их семантикой для проектирования чистых и предсказуемых RESTful API. Это упрощает интеграцию, улучшает понимание API другими разработчиками и позволяет задействовать встроенные возможности HTTP, такие как кэширование.