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. Клиент сам указывает, какие поля данных ему нужны.

Разница:

RESTGraphQL
Количество эндпоинтовМного (один на ресурс)Один
Клиент задаёт структуру данныхНетДа
Метод запросовGET, POST, PUT, DELETEPOST (всегда)
Где используетсяБольшинство APIFacebook, 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 — для наблюдения за запросами из браузера

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике