#1 Первый вызов ~ 5 мин
- Заходим на сайт https://httpie.io/app сегодня это будет наш основной инструмент для работы с REST API; Если у вас на рабочей станции/ноутбуке уже установлен Postman или Insomnia можете использовать их;
- В новой вкладке браузера (Ctrl+T) вводим адрес https://www.frankfurter.app/, ну или просто переходим по ссылке https://www.frankfurter.app/ она откроется в новой вкладке;
- Сайт предоставляет API курсов обмена основанный на данных Европейского ЦБ. Это простой, легкий и бесплатный (!) сервис для действующих и исторических курсов обмена валют. Смотрим документацию, для этого перейдём по ссылке Docs (https://www.frankfurter.app/docs/);
- Из приведенных примеров находим и копируем ссылку на API курса € по отношению к основным валютам https://api.frankfurter.app/;
- Переключаемся во вкладку с HTTPie;
- Выбираем GET в качестве HTTP Method и с помощью Ctrl+T вставляем из буфера обмена в адресную строку скопированный на предыдущем шаге адрес;
- Выполняем запрос, нажав на кнопку Send;
- Под строкой запроса в правой части экрана мы увидим результат выполнения вызова. Проверяем Status (ожидаем 200) и структуру ответа. Перед нами ответ сервера в формате JSON с приветственным сообщением и списком актуальных курсов на текущий момент;
- Усложним запрос, передав параметры (подробнее параметры обсудим в части #5) https://api.frankfurter.app/latest?from=GBP&to=USD
- Ещё сложнее: https://api.frankfurter.app/latest?amount=100&from=GBP&to=USD
Можно задаться вопросом, а зачем вообще использовать HTTPie/Postman/Insomnia? Мы можем сделать тот же самый вызов в адресной строке браузера. Это верно для самых простых вызовов, а вот в том случае, когда нам нужно проанализировать данные заголовков или параметры ответов, использовать другие HTTP методы, кроме GET, тогда нам потребуется специальный инструмент.
Обычно в теле ответа (payload, полезная нагрузка) возвращается JSON, но это не является каким-то строгим ограничением – теоретически, ответом может быть и картинка. Чтобы сделать API более эффективным (менее нагруженным) можно использовать формат YAML. В случае, когда быстродействие действительно важно можно рассмотреть использование Protobuff.