Skip to content
IRC-CodingIRC-Coding
RESTHTTPстатус-кодыидемпотентностьstatelessOpenAPI

REST API: HTTP методы, коды ответов, идемпотентность

GET/POST/PUT/DELETE/PATCH, статус-коды, идемпотентность, stateless архитектура, безопасность и примеры.

S

schutzgeist

1 min read
REST API: HTTP методы, коды ответов, идемпотентность

Принципы проектирования RESTful API

Этот материал — справочник по принципам проектирования RESTful API, с контрольными вопросами, ключевыми моментами и тегами.

Короче говоря

REST (Representational State Transfer) — это архитектурный подход для создания HTTP API: четкие методы, URI ресурсов, коды состояния и отсутствие состояния на сервере.

Основное описание

REST использует HTTP-методы для операций CRUD:

  • GET: чтение
  • POST: создание
  • PUT: полная замена
  • PATCH: частичное изменение
  • DELETE: удаление

REST следует принципу отсутствия состояния (Statelessness): каждый запрос содержит всю необходимую информацию, сервер не хранит состояние сеанса.

Идемпотентность критична для повторных попыток:

  • идемпотентные: GET, PUT, DELETE
  • не обязательно идемпотентные: POST, PATCH

Результаты передаются через коды состояния (например, 200, 201, 404, 500). Обычные форматы данных — JSON/XML.

Ключевые точки для проверки знаний

  • HTTP-методы для CRUD
  • REST не сохраняет состояние
  • Идемпотентность: повторения не должны дублировать побочные эффекты
  • URI ресурсов, например /api/users/123
  • Коды состояния (200, 201, 404, 500) (важно на экзаменах)
  • PATCH изменяет только отдельные поля
  • Безопасность: HTTPS, Token-Auth, CORS
  • Документация: OpenAPI/Swagger (обязательна)

Основные компоненты

  1. HTTP-методы
  2. Соглашения для URI ресурсов
  3. Коды состояния (2xx/4xx/5xx)
  4. Соответствие REST (Richardson)
  5. Правила идемпотентности
  6. Отсутствие состояния
  7. Content Negotiation (Accept/Content-Type)
  8. JSON/XML
  9. Аутентификация (Bearer/API-Key)
  10. OpenAPI/Swagger

Практический пример (API пользователей)

GET /users
POST /users
GET /users/1
PUT /users/1
PATCH /users/1
DELETE /users/1

Плюсы и минусы

Плюсы

  • Просто, понятно
  • Стандартный протокол (HTTP)
  • Независим от платформы и языка
  • Хорошо масштабируется

Минусы

  • Нет встроенного управления сеансами
  • Может требовать много запросов (chatty)
  • Для сложных операций нужна чистая архитектура

Типичные экзаменационные вопросы (с кратким ответом)

  1. Что означает stateless? Сервер не хранит состояние сеанса; запрос должен быть полным.
  2. Какие методы идемпотентны? GET, PUT, DELETE.
  3. PUT против PATCH? PUT заменяет полностью, PATCH только отдельные поля.
  4. Что означает 201? Ресурс был создан.

Развернутый ответ

REST — основа современных веб-API. На экзаменах и в проектах нужно четко документировать эндпоинты, правильно выбирать методы и корректно использовать коды состояния.

Стратегия обучения

  1. Тестируй API с помощью Postman/curl.
  2. Напиши небольшой API с CRUD-маршрутами.
  3. Выучи наизусть методы, коды состояния, идемпотентность.
  4. Используй PUT/DELETE только как идемпотентные операции.

Анализ темы

  • Ядро: HTTP, дизайн URI, JSON
  • Сложности: версионирование, обработка ошибок, аутентификация
  • Безопасность: контроль доступа, шифрование, CORS
  • Документация: OpenAPI, примеры, каталог ошибок
  • Экономичность: стандартизация экономит время

Дополнительные ресурсы

  1. https://learn.microsoft.com/en-us/azure/architecture/best-practices/api-design
  2. https://developer.mozilla.org/de/docs/Web/HTTP/Methods
  3. https://restfulapi.net/
  4. https://swagger.io/specification/
Назад к блогу
Share:

Nächster Artikel in Архитектура ПО

Weiterlesen
Design Patterns: Creational - Singleton, Factory, Builder

Похожие статьи