← Назад к вопросам

Что такое эндпоинты?

1.0 Junior🔥 171 комментариев
#API и интеграции

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое эндпоинты

Эндпоинт (Endpoint) — это конкретная точка доступа в API (Application Programming Interface), которая определяет конкретный адрес URL и метод HTTP для выполнения определённого действия. Эндпоинт — это как бы "дверь" в приложение, через которую клиент может отправить запрос и получить ответ.

Основные компоненты эндпоинта

1. URL адрес

  • Базовый адрес сервера: https://api.example.com
  • Путь до ресурса: /api/v1/users
  • Полный эндпоинт: https://api.example.com/api/v1/users
  • Может включать параметры: /api/v1/users/123 или /api/v1/users?status=active

2. HTTP метод

  • GET — получение данных (безопасный, идемпотентный)
  • POST — создание нового ресурса
  • PUT — полное обновление существующего ресурса
  • PATCH — частичное обновление ресурса
  • DELETE — удаление ресурса
  • HEAD — как GET, но без тела ответа
  • OPTIONS — описание доступных методов

3. Параметры запроса

  • Path параметры: /users/{id} — переменная в пути
  • Query параметры: /users?page=1&limit=10 — в строке запроса
  • Body параметры: в теле POST/PUT запросов (обычно JSON)
  • Headers: метаинформация запроса (авторизация, тип контента)

4. Ответ (Response)

  • Код статуса HTTP (200, 201, 400, 404, 500)
  • Тело ответа (обычно JSON)
  • Headers ответа

Практические примеры эндпоинтов

Примеры для управления пользователями:

GET /api/v1/users              — получить список пользователей
GET /api/v1/users/{id}         — получить пользователя по ID
POST /api/v1/users             — создать нового пользователя
PUT /api/v1/users/{id}         — обновить пользователя
DELETE /api/v1/users/{id}      — удалить пользователя

Примеры для управления заказами:

GET /api/v1/orders                    — список заказов
GET /api/v1/orders/{id}               — детали заказа
POST /api/v1/orders                   — создать заказ
PATCH /api/v1/orders/{id}             — обновить статус
DELETE /api/v1/orders/{id}            — отменить заказ
POST /api/v1/orders/{id}/cancel       — отменить с причиной

Типология эндпоинтов

По назначению:

1. CRUD эндпоинты (основные операции)

  • Create (POST) — создание
  • Read (GET) — чтение
  • Update (PUT/PATCH) — обновление
  • Delete (DELETE) — удаление

2. Специальные действия

  • /users/{id}/activate — активировать пользователя
  • /orders/{id}/ship — отправить заказ
  • /documents/{id}/export — экспортировать документ

3. Поиск и фильтрация

  • /users?search=john — поиск
  • /products?category=electronics&price_min=100 — фильтрация
  • /orders?status=completed&date_from=2024-01-01 — множественная фильтрация

4. Пажинация

  • /items?page=1&limit=20 — первая страница, 20 элементов
  • /items?offset=0&limit=50 — альтернативный подход

Принципы проектирования REST API эндпоинтов

1. Ресурсо-ориентированный подход

  • Используй существительные, не глаголы
  • ✅ Правильно: POST /users (создать пользователя)
  • ❌ Неправильно: POST /create-user (глагол в пути)

2. Иерархия ресурсов

  • Один уровень: /users, /products
  • Вложенные: /users/{id}/orders — заказы конкретного пользователя
  • Слишком глубокие иерархии затрудняют работу: избегай 4+ уровней

3. Версионирование API

  • /api/v1/users — версия в пути (предпочтительно)
  • /api/users с header API-Version: 1 — версия в заголовке

4. Консистентность

  • Единообразное именование (snake_case, camelCase)
  • Одинаковая структура ответов
  • Одинаковая обработка ошибок

Работа с эндпоинтами в системном анализе

Документирование

  • OpenAPI/Swagger спецификация
  • Описание всех эндпоинтов, параметров, ответов
  • Примеры запросов и ответов

Проектирование

  • Определение требуемых эндпоинтов на этапе проектирования
  • Согласование с фронтенд и другими клиентами
  • Планирование версионирования для обратной совместимости

Тестирование

  • Functional тесты (правильные данные)
  • Негативные тесты (неверные данные, ошибки)
  • Load тесты (производительность)

Резюме

Эндпоинты — это фундаментальная единица взаимодействия в современных приложениях. Понимание их структуры, принципов проектирования и лучших практик критично для системного аналитика при проектировании и интеграции распределённых систем.