Что такое REST API?

«Что такое REST API?» — вопрос из категории Сети, который задают на 26% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

REST API (Representational State Transfer Application Programming Interface) — это архитектурный стиль для построения распределенных систем, использующий стандарты HTTP. В контексте DevOps, REST API — это ключевой интерфейс для автоматизации, интеграции инструментов (CI/CD, мониторинг, оркестрация) и управления инфраструктурой как код (IaC).

Основные принципы, важные для DevOps:

  • Ресурсы: Всё представляется как ресурс с уникальным URI (например, https://api.github.com/repos/{owner}/{repo} для управления репозиторием).
  • HTTP-методы: Стандартные операции: GET (получить состояние), POST (создать), PUT/PATCH (обновить), DELETE (удалить).
  • Stateless (Без состояния): Каждый запрос содержит всю необходимую информацию для его обработки. Это критично для масштабируемости и отказоустойчивости сервисов.
  • Кэшируемость: Ответы должны явно указывать, можно ли их кэшировать, что снижает нагрузку на бэкенд.

Практический пример для DevOps: Автоматизация создания инцидента в системе мониторинга (например, PagerDuty) через API при срабатывании алерта в Prometheus.

# Пример вызова REST API для создания инцидента
curl -X POST https://api.pagerduty.com/incidents 
  -H "Content-Type: application/json" 
  -H "Authorization: Token token=YOUR_TOKEN" 
  -d '{
    "incident": {
      "type": "incident",
      "title": "High CPU usage on production-db-01",
      "service": {
        "id": "PYSERVICEID",
        "type": "service_reference"
      },
      "body": {
        "details": "CPU utilization is above 95% for 5 minutes."
      }
    }
  }'

В DevOps мы активно используем REST API для скриптов автоматизации, интеграции пайплайнов и взаимодействия с облачными провайдерами (AWS CLI, Azure CLI, Terraform providers — всё работает через REST).

Видео-ответы