Карта / Веб-сервисы (REST/SOAP) / Принципы REST, коды ответов

Принципы REST, коды ответов

REST — архитектурный стиль построения API поверх HTTP, где данные представлены как ресурсы (существительные: /users, /orders), а действия над ними — через HTTP-методы (см. тему «HTTP / HTTPS»).

GET    /api/users        — получить список пользователей
GET    /api/users/5       — получить пользователя 5
POST   /api/users          — создать нового пользователя
PUT    /api/users/5         — полностью заменить пользователя 5
DELETE /api/users/5          — удалить пользователя 5

Правило REST: URL — это существительное (ресурс), а не глагол. /api/createUser — не REST-стиль, правильно — POST /api/users.

Копнуть глубже

Коды ответов HTTP — стандартные группы:

ДиапазонЗначениеПримеры
2xxуспех200 OK, 201 Created, 204 No Content
3xxперенаправление301 Moved Permanently
4xxошибка клиента400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found
5xxошибка сервера500 Internal Server Error

401 vs 403 — частая путаница. 401 Unauthorized — «я не знаю, кто ты» (не прошёл аутентификацию, нет или неверный токен). 403 Forbidden — «я знаю, кто ты, но тебе сюда нельзя» (прошёл аутентификацию, но не хватает прав/роли). Это разные ситуации, и правильный выбор кода важен для клиента — по 401 клиент понимает «нужно перелогиниться», по 403 — «у меня нет доступа, логин тут ни при чём».

Шесть принципов настоящего REST (часто упрощают на практике): клиент-сервер разделены, отсутствие состояния на сервере (stateless), кэшируемость ответов, единый интерфейс, слоистая система, и опционально код по требованию. В реальных API строго следуют не всем — главное на практике: понятные URL-ресурсы, правильные HTTP-методы и коды ответов.

🎤 Закрыл тему, если можешь объяснить:
• идею REST — ресурсы как существительные, методы как действия;
• разницу 401 и 403 и основные группы кодов ответа (если дошёл до 2-го слоя).