Какие типы API вы знаете?

«Какие типы API вы знаете?» — вопрос из категории API тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Типы API классифицируются по архитектурному стилю и протоколу:

1. REST (Representational State Transfer)

  • Основа: HTTP-методы (GET, POST, PUT, DELETE, PATCH) и ресурсы (URI).
  • Формат данных: JSON или XML.
  • Ключевые принципы: Stateless, кэшируемость, единообразие интерфейса.
  • Пример запроса:
    GET /api/v1/users/123 HTTP/1.1
    Host: example.com

2. GraphQL

  • Основа: Единая конечная точка (endpoint) и язык запросов.
  • Преимущество: Клиент точно определяет структуру и объем требуемых данных, избегая over/under-fetching.
  • Пример запроса:
    query {
      user(id: 123) {
        name
        email
        posts(limit: 5) {
          title
        }
      }
    }

3. gRPC (Remote Procedure Call)

  • Основа: Вызов удаленных методов, как локальных функций. Использует протокол HTTP/2.
  • Контракты: Строгая типизация через файлы .proto (Protocol Buffers).
  • Применение: Высокопроизводительная межсервисная коммуникация в микросервисных архитектурах.

4. SOAP (Simple Object Access Protocol)

  • Основа: Строгий XML-протокол со встроенными стандартами безопасности (WS-Security) и транзакций.
  • Применение: Корпоративные и финансовые системы, где критична стандартизация и безопасность.

5. WebSocket

  • Основа: Постоянное двунаправленное соединение поверх TCP.
  • Применение: Приложения реального времени (чаты, биржевые тикеры, онлайн-игры).

Дополнительные концепции:

  • Webhook: Механизм обратного вызова (callback), когда сервер инициирует запрос к клиенту при наступлении события.
  • OpenAPI/Swagger: Стандарт для описания и документирования REST API.