ОБУЧЕНИЕ СО скидкой ДО 57%
Новый год — новая профессия
Блог Productstar

API в современных приложениях

API или Application Programming Interface можно встретить в большинстве современных приложений и вебсайтов. Уже из названия понятно, что это интерфейс, предлагающий разработчикам готовые блоки для создания приложений. Когда ты пишешь приложение, ты обращаешься к такой «библиотеке» и берешь оттуда необходимые данные.

Пока что все выглядит просто и понятно. Надеемся, что так будет и в дальнейшем и ты быстро разберешься в теме и научиться применять API в своих приложениях. А если нет, то мы постараемся помочь тебе в понимании того, что такое Application Programming Interface и где он применяется.
Интернет и удаленные серверы
Что же такое Интернет? Это огромная сеть серверов, связанных между собой. На них и хранятся все сайты, которые ты можешь видеть, когда вводишь определенный УРЛ в строку браузера. В принципе, сервером может стать и твой рабочий ноутбук. Он будет обслуживать твой сайт в сети, например. Кстати, разработчики, работающие над сайтами, создают их на локальных серверах и только после отладки запускают во всемирную паутину для публичного доступа.

Например, если ты введешь в строку браузера twitter.com, то на удаленный сервер популярной соцсети будет отправлен запрос. После получения ответа, браузер отображает страницу. Всякий раз, когда ты заходишь на ту или иную страницу, ты уже взаимодействует с API.
Обслуживание клиентов с помощью API
В некоторых компаниях API идет как готовый продукт. Например, если это метеорологический сервис, покупая доступ к Application Programming interface, ты получаешь метеорологические данные.
А теперь посмотрим на то, как можно использовать API в своих собственных приложениях. Один из самых простых примеров – написание приложения, в котором пользователь сможет получать данные по погоде в своем городе. Для этого нам необходимо подготовить HTML макет и подключить соответствующий API, а затем, с помощью нескольких функций заставить это приложение работать.

Как пишется HTML код под приложение, мы здесь разбирать не будем, в этом нет смысла. Приложение писалось в библиотеке React, поэтому тем, кто с ней еще не знаком, некоторые моменты могут быть не совсем понятны, но мы поясним по ходу разъяснения.

Итак, для получения доступа к серверу, мы сделаем функцию, в которой будет запрос к серверу с метеорологическими данными. Это нужно для того, чтобы в последующем, пользователь нашего приложения мог получать данные о погоде в любой момент.

Как это происходит? Пользователь твоего приложения хочет узнать, например, погоду в Москве. Для этого, он вбивает название города в поиск, который ты уже внедрил в приложение и получает результат.

В программе же этот результат достигается следующим образом. Функция getWeather отправляет запрос на сервер и получает ответ.
Дальше, в этой же функции мы спрашиваем, отвечает ли нам сервер. Если статус 404, значит мы не записываем никакие данные. А пользователь увидит undefined, ну или что-то другое, по твоему усмотрению. Если же сервер отвечает, мы записываем ответы в state и, когда пользователь будет вводить, например, «Москва» в поиске приложения, у него отобразятся данные именно по Москве (в нашем случае это температура, название города, страны, погодные условия)

Это пример на React, но ты можешь сделать все это на чистом JS без проблем. Самое главное – понять, как все это работает. Как ты мог убедиться, принцип здесь тоже очень простой – отправка запроса на сервер, получение статуса сервера. Если он недоступен, ты в приложении сообщаешь об этом пользователю, например, в графе «Температура» будет написано «Неизвестно» или любой другой вариант.

Если же сервер доступен, пользователь увидит температуру в своем городе, название города, страну и погодные условия.
А вот как выглядит API Европейского центрального банка. Его можно использовать, например, при создании простейшего конвертера валют. Как видишь, здесь просто объект, в котором есть стандартный набор ключ:значение. Получая доступ к этому серверу, ты можешь сделать конвертер, который поможет твоим пользователям рассчитать курс интересующих их валют.

И это далеко не все. Сегодня очень многие приложения и вебсайты предлагают свои API разработчикам. Например, такой интерфейс есть на сайте GitHub, где в базе можно получить информацию по всем пользователям и определенным критериям. API есть на криптовалютных биржах и с их помощью ты можешь создать свое приложение, которое будет «подтягивать» самые последние и актуальные котировки. Тот же CoinmarketCap работает по этому же принципу. Через Application Programming Interface они получают данные с большинства крупных и не только бирж о токенах.
Где взять API?
Предположим, ты хочешь сделать свое приложение и тебе требуется API интерфейс для его реализации. Например, это будет тот же метеорологический софт. Один из способов – воспользоваться гуглом. Но есть один интересный сайт, где предложено множество API - https://rapidapi.com/. Здесь доступна обширная библиотека, которая постоянно пополняется.

Все интерфейсы разделен по категориям. То есть, если тебе нужны метео сервисы, ты просто находишь такую категорию и смотришь результаты.
После этого откроется страница, на которой будут представлены все API нужной категории.
Выбрав подходящий интерфейс, можно переходить к его описанию и документации. Она представлена следующим образом:
Как видишь, все очень подробно. Очень многие API в свободном доступе, поэтому если ты сейчас изучаешь, например, JS или библиотеку типа React, ты можешь тренироваться с такими API в написании своих приложений для портфолио. Сервис требует регистрацию, пройти которую можно в том числе с помощью социальных сетей.
Виды API с точки зрения доступа
Существует два основных типа API – публичные и приватные. Первые встречаются в таких приложениях, как Slack или Shopify. Здесь разработчики делают упор на то, что интерфейсы могут использоваться на сторонних платформах. Подключение к такому API совершенно бесплатно, как и его использование.

Есть также приватные API. Они используются, в основном, внутри компаний. Если у фирмы множество внутренних продуктов, для взаимодействия между ними задействуется такой приватный интерфейс.
Основные и наиболее популярные категории API
Самыми часто используемыми интерфейсами этого типа являются:

  1. API для работы с документами, загружаемыми в браузер. Например, это относиться к Document Object Model. Этот API позволяет работать с HTML разметкой и стилями CSS. То есть разработчик может менять вид страницы. Все, что появляется на странице достигается как раз благодаря DOM.

  2. API, которые принимают данные с сервера. Ты уже немного знаком с этой технологией, так как мы ее показали примером выше. Когда мы создавали приложение для отображения погоды или конвертер валют, мы делали это именно с помощью данного типа API. Такой подход позволяет «оживить» вебсайт. Работать с серверами таким образом можно через Fetch API или XMLHttpRequest. Также есть термин AJAX, который описывает всю эту технологию.

  3. API для работы с графикой. Они широко поддерживаются браузерами. Наиболее известными являются Canvas и WebGL. С помощью таких API ты сможешь программным путем менять данных о пикселях, которые содержатся в элементе html <canvas>. То есть у тебя появляется возможность создания как двухмерных, так и трехмерных изображений с помощью такой технологии. Простой пример – создание какой-нибудь геометрической фигуры, например, треугольника с последующим импортом в canvas и применения различных фильтров. Конечно, эта технология позволяет создавать и более сложные элементы, в том числе трехмерные объекты. Эти API можно применять вместе с другими, например, с интерфейсами создания анимационных циклов. А здесь у тебя уже появляется возможность менять изображение на экране как играх или мультфильмах.

  4. Аудио и видео API. Такие интерфейсы специально разработаны для того, чтобы у тебя была возможность поработать с мультимедиа в своем приложении или на сайте. К примеру, ты сможешь разработать свой пользовательский интерфейс для проигрывания аудио или видео записей. Ты сможешь добавлять на экран субтитры, записывать видео или аудио с камеры, а также применять различные видео и звуковые эффекты.

  5. API различных устройств. В основном, это относится к считыванию данных с разных устройств для удобства работы с приложением. Например, есть специальное API, которое позволяет уточнить местоположения устройства. С его помощью ты сможешь написать свое приложение типа навигатора. Также есть API, которые позволяют уведомлять пользователя о появившихся обновлениях или API для включения вибрации смартфона.

  6. API для хранения информации на стороне пользователя. Эти интерфейсы пользуются все большей популярностью, так как позволяют хранить данные на стороне клиента, даже если страница перезагружена. При этом, приложение может работать и тогда, когда нет подключения к сети Интернет. К таким интерфейсам можно отнести Web Storage API или IndexedDB API.
Зачем создавать свой собственный API
Наверное, ты уже понял, хотя бы отчасти, зачем приложению нужен API. Приведем наиболее частые ситуации, когда в твоих приложениях ты будешь использовать такой интерфейс:

  1. Мобильные приложения. Если ты заглянешь AppStore или Google Play Market, ты найдешь там множество софта, в котором используются API. То есть ты создал какую-то программу, сделал простой API и пользователи приложения будут получать информацию именно через этот интерфейс. Согласись, очень удобно и практично.

  2. Open Source. Почему бы не использовать нужды твоей аудитории тебе же на благо? Сделал приложение? Создай к нему API, с помощью которого пользователи смогут создавать новые клиенты и сервисы.

  3. Распределение фронтенд и бэкенд. Здесь речь идет о том, что сделать такое распределение можно, например, с помощью использования различных фреймворков для фронтенда.
Сделал свой API, что дальше?
В принципе, на этом можно было бы и закончить, ведь ты уже создал интерфейс, пусть, как говорится пользуются (платно или бесплатно, определять тебе). Но на самом деле, это недостаточно. Каким образом пользователи будут обращаться к интерфейсу?

Конечно, это может быть стандартный набор HTTP запросов для получения искомой информации. Но это неправильный подход. Наиболее подходящий вариант – создание собственной библиотеки, которая и будет работать с API и где ты опишешь все самые необходимые способы получения и отправки данных.

Первое, что сразу же приходит на ум –Octokit от GitHub. Это яркий пример таких библиотек. Что касается документации, в ней содержится вся необходимая информация для того, чтобы пользователь библиотеки знал, как отыскать требуемую информацию.

Итак, если ты планируешь создание своего собственного API, возможно, тебе стоит позаботиться и о том, чтобы создать к нему библиотеки. Кстати, если твое приложение будет пользоваться большой популярностью, возможно, кто-то другой создаст библиотеку для работы с API твоего софта.
Примеры использования API в различных приложениях
Наверняка ты видел на страницах с приложениями заветное слово API. Это значит, что ты можешь создать свое собственное приложение и использовать готовый API на определенных условиях (бесплатно, платно, за регистрацию и так далее).

В качестве примера, можно привести API Github. Здесь ты получишь всю информацию о пользователе, его аватарке, подписчиках, репозиториях и иные интересные данные. А если взять API Twitter, здесь можно получить информацию о пользователях, твитах, подписчиках и так далее. Такая информация может быть действительно крайне полезной при разработке сторонних приложений.
Выводы
Теперь ты знаешь, что такое Application Programming Interface. Ты можешь применять его в своих приложениях или создать приложение и разработать свой API для него, чтобы другие пользовались им.
Больше тонкостей в работе с API можно узнать на нашем шестимесячном курсе «Профессия: Программист»
Получить консультацию по курсам для разработчиков
Java / Frontend/ Web / Python
Расскажем детали курса, а также забронируем текущую стоимость