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

Какие знаешь виды API?

1.3 Junior🔥 201 комментариев
#Тестирование API

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

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

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

Виды API и их применение в тестировании

Определение API

API (Application Programming Interface) — набор правил и протоколов для взаимодействия между приложениями. Для QA это критично: большинство современных систем строятся на API интеграциях.

1. REST API (Representational State Transfer)

Самый распространённый вид.

Характеристики:

  • Использует HTTP методы: GET, POST, PUT, PATCH, DELETE
  • Ресурсы в URL: /api/v1/users, /api/v1/users/123
  • Stateless (сервер не хранит состояние)
  • Простой для понимания и тестирования

Что тестировать:

  • Все CRUD операции
  • Статус коды (200, 201, 400, 404, 500)
  • Валидация входных данных
  • Переходы состояний
  • Ошибки и edge cases

2. GraphQL API

Альтернатива REST, набирает популярность.

Характеристики:

  • Single endpoint (обычно /graphql)
  • Клиент запрашивает ровно те поля, которые нужны
  • Strongly typed schema
  • Queries (READ), Mutations (WRITE), Subscriptions (REAL-TIME)

Что тестировать:

  • Query валидация
  • Mutation побочные эффекты
  • Schema compliance
  • Вложенные queries (N+1 проблемы)
  • Subscriptions (real-time updates)
  • Ошибки в queries

3. SOAP API (Simple Object Access Protocol)

Старый, но всё ещё используется в enterprise.

Характеристики:

  • XML-based (чётко структурирован)
  • WSDL (Web Services Description Language)
  • Более сложный, чем REST
  • Используется в банках, страховых компаниях

Что тестировать:

  • XML валидация
  • SOAP faults
  • WSDL compliance
  • WS-Security

4. RPC API (Remote Procedure Call)

Позволяет вызывать функции на удалённом сервере.

Характеристики:

  • JSON-RPC или XML-RPC
  • Функция-ориентированный подход
  • Все запросы через POST
  • Используется в blockchain (Bitcoin, Ethereum)

Что тестировать:

  • Валидность RPC методов
  • Параметры и их типы
  • Ошибки (Invalid Request, Method Not Found)
  • Batch requests

5. WebSocket API

Для real-time коммуникации (two-way).

Характеристики:

  • Persistent connection (не закрывается)
  • Низкая latency
  • Используется в чатах, live notifications, games
  • Событие-ориентированный

Что тестировать:

  • Connection lifecycle (open, close, reconnect)
  • Message delivery и ordering
  • Broadcast vs private messages
  • Race conditions
  • Disconnection handling

6. Public/Third-party APIs

Интеграция с внешними сервисами.

Примеры: Google Maps, Stripe, Twilio, AWS

Что тестировать:

  • API keys и authentication
  • Rate limiting
  • Error handling (сервис недоступен?)
  • Версионирование API
  • Документация accuracy

7. Internal APIs

APIs внутри приложения (микросервисная архитектура).

Примеры: User Service, Order Service, Payment Service

Что тестировать:

  • Service-to-service communication
  • Circuit breakers (fallback)
  • Service discovery
  • API contracts

Матрица сравнения API типов

ТипСложностьПопулярностьИспользуется для
RESTНизкаяОчень высокаяWeb, Mobile
GraphQLСредняяРастётWeb, Mobile
SOAPВысокаяСредняяEnterprise, банки
RPCНизкаяСредняяBlockchain
WebSocketСредняяРастётReal-time

Инструменты для тестирования API

  • Postman: REST, SOAP, GraphQL
  • Insomnia: REST, GraphQL
  • cURL: REST запросы
  • SoapUI: SOAP, REST
  • Charles/Fiddler: Network debugging
  • JMeter: Load testing

Практические советы

  • Всегда проверяй документацию API
  • Тестируй happy path и error cases
  • Используй tools для автоматизации
  • Мониторь performance
  • Проверяй security (HTTPS, API keys, логи)
Какие знаешь виды API? | PrepBro