Какова роль API в клиент-серверной архитектуре?

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

Ответ

API (Application Programming Interface) — это контракт или интерфейс, который определяет правила взаимодействия между клиентом (например, веб-браузером или мобильным приложением) и сервером.

Ключевые функции API:

  1. Стандартизация обмена данными. Определяет форматы запросов и ответов (JSON, XML) и протоколы (HTTP для REST).
  2. Инкапсуляция логики. Скрывает внутреннюю реализацию сервера, позволяя клиенту взаимодействовать с ним через четко определенные методы.
  3. Обеспечение безопасности. Реализует механизмы аутентификации (API-ключи, OAuth, JWT) и ограничения запросов (rate limiting).

Пример REST API запроса на Python с использованием библиотеки requests:

import requests

# GET-запрос для получения данных пользователя
response = requests.get('https://api.example.com/users/1', 
                         headers={'Authorization': 'Bearer YOUR_TOKEN'})

if response.status_code == 200:
    user_data = response.json()  # Данные в формате JSON
    print(user_data)
else:
    print(f"Ошибка: {response.status_code}")

Для тестирования API важно проверять:

  • Корректность ответов для валидных и невалидных данных.
  • Соответствие HTTP-статус кодов (200 OK, 201 Created, 400 Bad Request, 404 Not Found).
  • Производительность (время отклика, пропускную способность).
  • Соблюдение контракта (например, спецификации OpenAPI/Swagger).