Что такое API простыми словами: объяснение для тестировщика
Без понимания API тестировщик видит только верхушку: кнопку и результат. С ним становится видно, где именно сломалось и кто виноват — интерфейс или сервер.
Что такое API простыми словами
API — это способ, которым одна программа обращается к другой. Не через кнопки и экраны, а напрямую: «дай список товаров», «создай заказ», «проверь этот пароль».
Бытовая аналогия: в кафе вы не идёте на кухню и не готовите сами. Вы говорите официанту, чего хотите, из фиксированного меню — и получаете результат. Меню и правила заказа и есть API: список того, что можно попросить, и в каком виде.
Когда вы нажимаете «Оформить заказ», браузер не делает ничего волшебного: он отправляет на сервер запрос с данными вашей корзины и ждёт ответ. Всё, что делает интерфейс, — это красиво показать результат.
Из чего состоит запрос
| Часть | Что это | Пример |
|---|---|---|
| Метод | Что делаем | GET, POST, PUT, DELETE |
| Адрес | С чем делаем | /api/orders/10432 |
| Заголовки | Служебные данные | Authorization, Content-Type |
| Тело | Что передаём | {"productId": 10, "qty": 2} |
Ответ устроен похоже: код ответа (200, 404, 500), заголовки и тело — обычно JSON.
- GET — прочитать, ничего не меняет. Можно повторять сколько угодно.
- POST — создать. Повторный вызов создаёт ещё одну запись — отсюда классический дефект с двойным кликом.
- PUT / PATCH — изменить целиком или частично.
- DELETE — удалить.
Зачем тестировщику лезть в API, если есть интерфейс
Через интерфейс можно проверить не всё, а иногда — принципиально не то.
- Локализация дефекта. Кнопка не работает — виноват фронтенд или сервер? Один запрос отвечает на вопрос за минуту.
- Проверки, которых нет в интерфейсе. Форма не даёт ввести отрицательную цену, а запрос — даёт. Если сервер её примет, это дефект, и найти его можно только так.
- Права доступа. Подставить чужой идентификатор в адрес запроса — базовая проверка, которую через интерфейс не сделать.
- Скорость. Проверить двадцать вариантов данных запросами быстрее, чем прокликивать форму двадцать раз.
- Подготовка данных. Создать десять заказов запросом проще, чем оформлять руками.
Возьмите свой запрос вида GET /api/orders/10432 и поменяйте номер на чужой. Если данные вернулись — сервер не проверяет владельца. Это одна из самых частых и самых дорогих ошибок.
Что такое REST и почему это слово везде
REST — набор соглашений о том, как строить API поверх HTTP. Не стандарт с проверкой, а договорённость, поэтому «RESTful» бывает очень разного качества.
Основные соглашения: адрес обозначает сущность (/orders, /users/7), действие задаётся методом, а не словом в адресе (DELETE /orders/5, а не /deleteOrder?id=5), состояние между запросами на сервере не хранится — авторизация передаётся каждый раз.
Для тестировщика это значит предсказуемость: увидев POST /api/orders, вы уже знаете, что произойдёт, и какие проверки нужны.
Минимальный набор проверок для любого метода API
Когда перед вами незнакомый метод, а требований мало, начинайте с этого списка — он закрывает большую часть типовых дефектов.
- Успешный вызов. Верные данные, верный токен: код 200 или 201, тело в ожидаемом формате.
- Без авторизации. Убрать заголовок — должно быть 401, а не 200 и не 500.
- Чужой ресурс. Подставить идентификатор другого пользователя — 403 или 404.
- Обязательные поля. Убрать по одному — 400 с указанием, какое поле неверно.
- Неверные типы. Строка вместо числа, отрицательное количество, дробное там, где ждут целое.
- Границы. Пустая строка, очень длинная строка, ноль, максимум.
- Неверный
Content-Type. Ожидается 415, а не падение. - Повторный вызов. Отправить тот же POST дважды — не создалось ли два заказа.
- Лишние поля в теле. Игнорируются или ломают обработку.
Ответ 500 там, где должен быть 400. Некорректные данные — это ожидаемая ситуация, и сервер обязан отвечать понятной ошибкой, а не падать. Отправьте в числовое поле строку — и посмотрите.
С чего начать практику
- Откройте DevTools → Network → фильтр Fetch/XHR на любом сайте и посмотрите, какие запросы он шлёт при ваших действиях.
- Возьмите один запрос, скопируйте «Copy as cURL» и выполните в терминале — убедитесь, что получили тот же ответ.
- Импортируйте его в Postman и поменяйте одно поле в теле. Посмотрите, что ответит сервер.
- Проверьте запрос без заголовка авторизации — должен быть 401.
- Проверьте с чужим идентификатором — должен быть 403 или 404.
Что означают коды в ответах — в шпаргалке по HTTP. Попробовать всё это без установки инструментов можно в тренажёре «клиент API»: учебный сервер поднимается прямо в браузере.
Нужно ли уметь программировать, чтобы тестировать API?
Нет. Для ручной проверки достаточно Postman и понимания, как устроен запрос. Программирование нужно, когда проверки автоматизируют.
Чем отличается тестирование API от тестирования интерфейса?
Уровнем: API проверяется без экрана, поэтому туда попадают проверки, недоступные через кнопки, — права, форматы, ограничения на сервере.
Что такое JSON?
Формат записи данных, в котором API чаще всего отвечает: пары «ключ — значение» в фигурных скобках. Читается человеком без инструментов.
API — то место, где чаще всего срезаются на собеседовании: теорию рассказывают все, а собрать запрос с авторизацией и прочитать ответ могут не все. В курсе под это отдельный модуль с тренажёрами Postman и терминала, где запросы уходят на настоящий учебный сервер. 14 900 ₽ один раз, доступ навсегда, тренажёр «клиент API» открыт бесплатно.