API и коммуникация
Урок 7.5 — API и коммуникация: как фронт говорит с бэком
Как части приложения общаются
Фронтенд и бэкенд — это отдельные программы. Они общаются через API (Application Programming Interface) — набор правил, описывающих, как именно они обмениваются данными.
Каждый раз, когда ты нажимаешь кнопку в приложении и видишь обновление данных — это фронтенд отправил запрос к бэкенду через API и получил ответ.
REST API — самый популярный подход
REST (Representational State Transfer) — это стиль построения API. Большинство современных приложений используют именно его.
Принципы REST:
- Данные — это ресурсы, у каждого есть свой URL:
/api/users,/api/orders/42 - Для работы с ресурсом используются HTTP-методы:
| Метод | Действие | Пример |
|---|---|---|
| GET | Получить данные | GET /api/users — список пользователей |
| POST | Создать | POST /api/users — зарегистрировать пользователя |
| PUT / PATCH | Обновить | PATCH /api/users/42 — изменить профиль |
| DELETE | Удалить | DELETE /api/users/42 — удалить пользователя |
GraphQL — альтернатива REST
GraphQL — другой подход к построению API. Вместо множества разных URL — один эндпоинт, обычно /graphql. Клиент сам указывает, какие поля данных ему нужны.
Разница:
| REST | GraphQL | |
|---|---|---|
| Количество эндпоинтов | Много (один на ресурс) | Один |
| Клиент задаёт структуру данных | Нет | Да |
| Метод запросов | GET, POST, PUT, DELETE | POST (всегда) |
| Где используется | Большинство API | Facebook, GitHub, Shopify |
Для тестировщика GraphQL означает, что для тестирования API нужно использовать другой подход — запросы отправляются как JSON в теле POST-запроса.
Документация API: Swagger / OpenAPI
Swagger (OpenAPI) — стандарт для документирования REST API. Это страница, на которой описаны все эндпоинты: что принимают, что возвращают, какие коды ошибок возможны.
Для тестировщика Swagger — это спецификация: то, как API должен работать. Это основа для написания тест-кейсов на API.
Обычно Swagger доступен по URL типа: http://localhost:3001/api-docs или /swagger
На странице Swagger можно:
- Посмотреть все эндпоинты и их описание
- Сразу выполнить запрос прямо в браузере (кнопка "Try it out")
- Увидеть примеры запросов и ответов
Versioning API: /v1/ и /v2/
Когда API меняется несовместимо (ломается контракт), разработчики создают новую версию:
/api/v1/users— старая версия (старые клиенты продолжают работать)/api/v2/users— новая версия с изменённой структурой данных
Тестировщик должен понимать, какую версию тестирует, и что при переходе на новую версию нужно перетестировать интеграции.
Инструменты тестировщика для API
Postman — главный инструмент для тестирования API:
- Отправляй любые HTTP-запросы к API напрямую, без UI
- Сохраняй коллекции запросов и переиспользуй их
- Задавай заголовки (например, токен авторизации)
- Проверяй ответ (статус-код, тело ответа)
DevTools → Network — следи за API-запросами прямо из браузера:
- Видишь все запросы, которые делает приложение
- Смотришь заголовки запроса и ответа
- Видишь тело запроса (что именно отправил фронт)
- Видишь тело ответа (что именно вернул бэкенд)
Что мы запомним
- API — это контракт общения между фронтендом и бэкендом
- REST API использует HTTP-методы (GET/POST/PUT/DELETE) и URL-ресурсы
- GraphQL — один эндпоинт, клиент указывает нужные поля
- Swagger/OpenAPI — документация API, которая является спецификацией для тест-кейсов
- Postman — для тестирования API напрямую; Network в DevTools — для наблюдения за запросами из браузера