Обычно под термином API подразумевают способ, с помощью которого программы или сервисы могут запрашивать данные у других сервисов. В этом уроке мы начнем знакомство с API и на примере разберем, как он работает.
У GitHub есть сайт, на котором мы можем просматривать организации, репозитории и код проектов. Кликая по ссылкам, мы попадаем на разные адреса, по которым доступна разная информация: список репозиториев, страница конкретного репозитория, профиль пользователя, просмотр истории коммитов и так далее. Вот примеры таких ссылок:
- https://github.com/hexlet-components — страница конкретной организации
- https://github.com/hexlet-components/java-spring-blog — страница конкретного репозитория
Каждая из этих страниц возвращает HTML. Информация представлена так, как мы ее видим — то есть со всеми элементами дизайна. Сайт GitHub адаптирован под небольшие экраны и открывается с любого устройства, где есть браузер.
Но у GitHub есть еще и мобильное приложение, которое показывает ту же самую информацию, но с более удобным интерфейсом, адаптированным под конкретный телефон. В отличие от сайта, мобильное приложение физически хранится и запускается прямо на телефоне, его внешний вид описывается внутри приложения.
Для работы такого приложения нужны чистые данные, которых на телефоне нет, они есть на серверах GitHub. Как загрузить их с сервера на телефон? Обычные адреса страниц нам не подходят, так как они возвращают не данные, а готовые html-страницы.
Именно здесь на помощь приходит API. GitHub предоставляет специальные HTTP-адреса, по которым доступны чистые данные, а не конкретные интернет-страницы с готовым внешним видом.
Данные по таким адресам отдаются в структурированном формате — чаще всего это формат JSON.
Один сервис упаковывает данные в JSON-формат, а другой принимает данные, распаковывает их из JSON-файла и использует внутри себя для отображения. Так может выглядеть запрос организации:
https://api.github.com/users/hexlet-components
# В ответ приходит JSON-файл такой структуры:
{
"login": "hexlet-components",
"id": 17640888,
"url": "https://api.github.com/users/hexlet-components",
"html_url": "https://github.com/hexlet-components",
"type": "Organization",
"name": "Hexlet",
"blog": "https://hexlet.io",
"location": "Finland",
"email": "support@hexlet.io",
"public_repos": 100,
"created_at": "2016-03-04T10:22:44Z",
"updated_at": "2022-12-10T00:19:37Z",
}
Задача этого API — дать удобный доступ к данным GitHub. Причем этот API GitHub используется не только самим GitHub в мобильных приложениях. Его же используют и в сторонних сервисах. Например, в сервисах для анализа и автоматической проверки качества кода, которые интегрируется с репозиториями GitHub для обнаружения потенциальных проблем в коде.
GitHub API — это пример HTTP API. Он работает по протоколу HTTP, через который браузеры загружают и показывают сайты.
HTTP — это самый распространенный и удобный способ делать API для публичных интернет сервисов. Под него заточен весь интернет, он поддерживается в любом языке программирования. Это простой протокол — с ним знакомы все, кто связан с разработкой мобильных и веб-приложений.
В этом курсе мы поговорим, что из себя представляет HTTP API, каким оно бывает и как работает. Мы научимся делать запросы к API для его анализа и тестирования, используя программу curl и сервис Postman. Также мы познакомимся со стандартом OpenAPI, который используется для описания формата API.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Вебинар «Как самостоятельно учиться»
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.