Слышал про REST? Многие думают, что если API поддерживает методы GET и POST — значит, он уже RESTful. На самом деле всё гораздо глубже.
В этой статье расскажу, что делает API по-настоящему RESTful, и почему стоит понимать эти принципы, если хочешь работать с современными системами.
Что такое REST?
REST (Representational State Transfer) — это архитектурный стиль, определённый в 2000 году Роем Филдингом. Он задаёт принципы построения взаимодействия между клиентом и сервером через HTTP.
Проще говоря, REST — это набор правил, которые делают API удобным, предсказуемым и масштабируемым.
Частые заблуждения
Когда видишь URL вроде /getUser?id=1, кажется, что это классический REST. Но такой подход — это просто вызов функции через HTTP, а не REST.
REST не про красивые URL и не про просто GET/POST. Он про организацию работы с ресурсами и чёткие правила.
Основные принципы настоящего RESTful API
1. HTTP-методы по назначению
Каждый HTTP-метод выполняет строго определённую роль:
- GET — получить данные
- POST — создать новый ресурс
- PUT — обновить существующий ресурс целиком
- PATCH — частично обновить ресурс
- DELETE — удалить ресурс
Если ты видишь GET /deleteUser?id=5, это нарушение принципов REST.
2. Ресурсы вместо действий
REST строится вокруг ресурсов — объектов, к которым обращаются, а не вокруг действий.
Пример:
- ❌ /getUser?id=1 — запрос к действию “получить пользователя”
- ✅ /users/1 — запрос к ресурсу “пользователь с ID=1”
В REST клиент обращается к ресурсам, а не вызывает функции.
3. Stateless — запросы независимы
Каждый запрос к серверу должен содержать всю необходимую информацию. Сервер не хранит состояние между запросами.
Это означает, что нет сессий на сервере, а например, токен авторизации нужно передавать с каждым запросом.
4. Формат данных и кеширование
Ответы обычно в формате JSON, с правильно настроенными HTTP-заголовками.
Поддержка кеширования — важная часть REST. Если ресурс не меняется, сервер может отдавать его из кеша.
5. HATEOAS (опционально)
Hypermedia As The Engine Of Application State — когда сервер в ответе предоставляет ссылки, по которым клиент может узнать, что делать дальше.
Это расширяет возможности API, делая взаимодействие более гибким.
Почему это важно знать системному аналитику?
Если ты занимаешься интеграциями или описываешь архитектуру, понимание настоящего REST поможет:
- правильно формулировать требования к API
- оценивать архитектуру и качество решений
- объяснять команде, почему «REST» — это не просто красивые URL
Итог
RESTful — это не про «хотя бы GET и POST», а про набор принципов, которые делают API понятным и поддерживаемым.
Если API нарушает эти правила — стоит задуматься, а насколько качественная интеграция получится?
Если статья была полезна — подписывайся на канал @sa_ordin, где разбираем системный анализ без воды и с практическими примерами.