Какие архитектуры API вы знаете?

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

Ответ

Основные архитектуры API включают:

  1. REST (Representational State Transfer)

    • Принцип: Использует стандартные HTTP-методы (GET, POST, PUT, DELETE, PATCH) для операций с ресурсами, идентифицируемыми через URL.
    • Формат данных: JSON или XML.
    • Пример запроса:
      GET /api/users/1 HTTP/1.1
      Host: example.com
      Accept: application/json
    • Плюсы: Простота, кэшируемость, несостоятельность (stateless).
  2. GraphQL

    • Принцип: Позволяет клиенту формировать запросы для получения только необходимых данных, избегая проблемы недополучения или избыточности данных (over-fetching/under-fetching).
    • Пример запроса:
      query {
        user(id: 1) {
          name
          email
          posts(limit: 5) {
            title
          }
        }
      }
    • Плюсы: Гибкость, единая конечная точка (endpoint), строгая типизация схемы.
  3. SOAP (Simple Object Access Protocol)

    • Принцип: Строгий протокол на основе XML. Использует WSDL (Web Services Description Language) для описания сервиса.
    • Плюсы: Высокая стандартизация, встроенная безопасность (WS-Security), надежность (встроенные механизмы повторных попыток).
    • Минусы: Сложность и избыточность (большой объем передаваемых данных).
  4. RPC (Remote Procedure Call)

    • Принцип: Клиент вызывает удаленную процедуру (функцию) на сервере, как локальную.
    • Реализации:
      • gRPC: Высокопроизводительный фреймворк от Google, использует бинарный протокол Protocol Buffers (protobuf).
      • JSON-RPC: Легковесный протокол, использующий JSON для кодирования вызовов.