Введение в API
Введение в API
Введение
Мы уже знаем, что такое API в общих чертах. Теперь погрузимся глубже: разберём виды API, познакомимся с REST, рассмотрим реальные примеры запросов и ответов. А главное — поймём, какими инструментами пользуется тестировщик для работы с API.
Виды API
По доступности:
| Вид | Описание | Пример |
|---|---|---|
| Публичный (Public) | Открыт для всех разработчиков | API погоды, GitHub API |
| Приватный (Private) | Только для внутренних систем компании | API между микросервисами |
| Партнёрский | Доступен доверенным партнёрам | API платёжной системы для магазинов |
REST API
REST (Representational State Transfer) — самый популярный стиль веб-API.
Ключевые принципы REST:
- Ресурсы адресуются URL-ами:
/users,/orders/5,/products - HTTP-методы определяют действие: GET = читать, POST = создать, DELETE = удалить
- Stateless: сервер не хранит состояние между запросами
- Ответ обычно в JSON
Примеры REST эндпоинтов:
GET /api/users → список всех пользователей
GET /api/users/7 → пользователь с ID 7
POST /api/orders → создать новый заказ
DELETE /api/products/5 → удалить товар с ID 5
PATCH /api/users/7 → обновить отдельные поля пользователя 7
Реальный пример: авторизация
Запрос:
POST /api/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "mypassword123"
}
Успешный ответ (200 OK):
{
"token": "eyJhbGciOiJIUzI1NiIsInR...",
"user": {
"id": 42,
"email": "user@example.com",
"name": "Анна"
}
}
Ответ при неверном пароле (401 Unauthorized):
{
"error": "Неверный email или пароль"
}
Токен авторизации
После логина сервер возвращает токен — длинную строку, которая доказывает, что ты авторизован.
В дальнейших запросах этот токен передаётся в заголовке:
GET /api/profile
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR...
Если токен не передан или просрочен — сервер вернёт 401 Unauthorized.
Инструменты тестировщика для работы с API
Postman
Самый популярный инструмент. Позволяет:
- Составлять и отправлять HTTP-запросы
- Сохранять запросы в коллекции
- Писать автоматические проверки (тесты)
- Работать с переменными (токен, base URL)
curl
Консольный инструмент. Пример:
curl -X GET https://api.example.com/users \
-H "Authorization: Bearer my-token"
DevTools (вкладка Network)
Встроен в браузер (F12). Позволяет:
- Видеть все запросы, которые делает страница
- Смотреть заголовки, тело запроса и ответа
- Копировать запросы как curl для воспроизведения
Зачем тестировщику API-знания
- Валидация бизнес-логики независимо от UI
- Создание тестовых данных быстро и точно
- Обход UI для воспроизведения багов — дать разработчику точный curl-запрос
- Тестирование граничных случаев — отправить данные, которые нельзя ввести через форму
- Проверка безопасности — попробовать получить чужие данные, сделать запрос без токена
Типичные ошибки
- "Тестировать API сложно" — с Postman это доступно любому тестировщику
- "Раз API вернул 200, значит всё хорошо" — смотри на тело ответа! Данные могут быть неверными
- "API тестируют только разработчики" — нет, это ключевая компетенция QA-инженера
Что мы запомним
- API бывает публичным, приватным и партнёрским
- REST API: ресурсы в URL, HTTP-методы определяют действие, stateless
- После логина сервер выдаёт токен, который передаётся в заголовке
Authorization - Инструменты: Postman, curl, DevTools Network
- API-тестирование — это не опция, а необходимый навык современного тестировщика