Урок 1 из 8 · 15 мин · обновлено
Что такое API: клиент, сервер, запрос и ответ
Что такое API простыми словами, как приложение общается с сервером через запросы и ответы, что такое эндпоинт и почему API тестируют отдельно от интерфейса.
Как приложения разговаривают с сервером
Откройте приложение доставки: список ресторанов, меню, корзина, статус заказа. Всё это хранится не в телефоне, а на сервере компании. Приложение — клиент — каждый раз спрашивает сервер:
- «Покажи рестораны рядом» — сервер присылает список;
- «Добавь пиццу в корзину» — сервер запоминает и отвечает «готово»;
- «Какой статус у заказа 1042?» — сервер отвечает «курьер в пути».
Каждый такой вопрос — запрос, каждый ответ сервера — ответ. А правила, по которым они устроены, — API (application programming interface, программный интерфейс приложения).
Удобное сравнение — меню в кафе. В меню перечислено, что можно заказать и что вы получите. Как готовят на кухне, гостю знать не нужно. API — такое меню для программ: какие запросы можно отправить и какие ответы придут.
Эндпоинты
У API много действий, и у каждого свой адрес — эндпоинт (endpoint). В учебном API интернет-магазина, с которым мы будем работать, они такие:
| Эндпоинт | Что делает |
|---|---|
https://dummyjson.com/products |
список товаров |
https://dummyjson.com/products/1 |
товар с номером 1 |
https://dummyjson.com/products/search?q=phone |
поиск товаров |
https://dummyjson.com/carts/1 |
корзина с номером 1 |
Первую часть адреса — https://dummyjson.com — называют базовым адресом. Он общий для всех запросов, а дальше идёт путь к нужному действию.
Откройте https://dummyjson.com/products/1 прямо в браузере. Вы увидите текст в фигурных скобках — это ответ сервера в формате JSON. Браузер сейчас сам стал клиентом и отправил запрос.
Один API — много клиентов
Одним и тем же API пользуются сразу несколько клиентов: сайт, приложения для Android и iPhone, касса в магазине, сервис партнёров. Поэтому API — центральная часть системы. Если он отдаёт неправильные данные, ошибка будет везде сразу.
Сервисы общаются через API и между собой: магазин спрашивает у банка, прошла ли оплата, у службы доставки — сколько стоит привезти заказ, у карт — адрес по координатам.
Зачем проверять API отдельно
Тестировщик может проверять приложение через интерфейс: нажимать кнопки и смотреть на экран. Но многие ошибки удобнее искать на уровне API:
- интерфейса ещё нет, а сервер уже готов — проверить можно раньше;
- через API быстро перебрать много вариантов: пустые поля, огромные числа, чужие данные;
- если экран показывает ошибку, по запросу и ответу видно, кто виноват — приложение или сервер.
Для этого нужна программа, которая умеет отправлять запросы и показывать ответы. Самая популярная — Postman. До неё дойдём в уроке 4, а сначала разберёмся, из чего состоят запросы и ответы.
Попробуйте сами. Откройте в браузере три адреса: https://dummyjson.com/products/1, https://dummyjson.com/products/2 и https://dummyjson.com/products/0. Что изменилось в ответе? Что, по-вашему, значит последний ответ?
Ответ
Первые два адреса возвращают разные товары: число в конце пути — номер товара. В ответе есть его название title, цена price, категория, рейтинг и другие поля.
Третий адрес возвращает:
{"message":"Product with id '0' not found"}
Товара с номером 0 нет, и сервер сообщает об этом. Помимо текста, он вернул код ответа 404 — «не найдено». Браузер его не показывает, а Postman покажет. О кодах — в следующем уроке.
Мини-тест: проверьте себя
Закрепите урок: несколько вопросов, разбор ответов — в конце.
-
Что такое API простыми словами?
API описывает, как к программе обратиться и что она ответит. Как меню в кафе: вы выбираете из списка, а как готовят на кухне — не ваше дело.
-
Кто в паре «приложение доставки — сервер» является клиентом?
Клиент — тот, кто спрашивает. Сервер — тот, кто хранит данные и отвечает.
-
Почему API часто тестируют отдельно от интерфейса?
Ошибка может прятаться в данных с сервера. Проверка API находит её быстрее и не зависит от того, нарисован ли экран.