API или Application Programming Interface встречается в приложениях, на сайтах и в мемах программистов.
Если вы тоже не поняли, о чем эти мемы, то давайте разбираться, что такое API.
API — что это и как работает
Вы точно пользуетесь API постоянно, но не замечаете этого. Например, когда пересылаете картинки из одного мессенджера в другой или быстро регистрируетесь на новом сайте через Facebook.
Виталий, разработчик HOSTiQ.ua 💬
«Мы в HOSTiQ все делаем через API: создаем хостинги в клиентских аккаунтах, удаляем их, регистрируем домены, получаем платежи. Без API нам не обойтись — это экономит время и упрощает работу.»
Простыми словами, API — это посредник между программами, который задает правила «общения». Поэтому в его названии заложено понятие «интерфейс» ― граница между объектами. Одной программе не важно, как именно работает другая. Разработчики просто пользуются интерфейсом: отправляют запрос и получают обратный ответ.
Рассмотрим использование API на примере. Разработчик сделал сайт с онлайн-конвертером валют. Он хочет, чтобы конвертером пользовались не только на исходном сайте, но и в банковских приложениях.
Как это сделать:
- Разработчик конвертера создает API и выкладывает его на своем сайте. Описывает в документации, как работает API и какие есть функции.
- Разработчики банковских приложений берут API конвертера и добавляют его в свой код, если хотят дать своим пользователям функции этого конвертера.
- Пользователь приложения вводит сумму, которую хочет «обменять», и выбирает валюты.
- Приложение посылает на сервер конвертера специальный запрос с суммой, которую нужно перевести в выбранную валюту.
- Конвертер переводит сумму и отправляет ответ с результатом в нужной валюте.
- Приложение получает ответ и показывает его пользователю.
В итоге все довольны: пользователь перевел цифры в другую валюту в приложении, конвертером пользуются не только на сайте, а банковские приложения не писали конвертер с нуля, но улучшили свой продукт.
Виталий, разработчик HOSTiQ.ua 💬
«API упрощает и ускоряет работу, а иногда вообще выглядит как магия. Например, как с переводами статей в блоге:
– мы: переведи этот текст.
– Google Translate через две секунды: перевел, что-нибудь еще?
А мы понятия не имеем, сколько всего стоит за тем, чтобы этот перевод сделать. Нам это и не нужно.»
При покупке на год — скидка 30%
Почему разработчики используют API
Пример выше показывает, для чего нужен API и какие плюсы дает его использование:
- Экономия. Разработчики, которые используют чужие API, экономят время и деньги, потому что работают с уже готовым кодом.
- Предсказуемость. Пользователи привыкли к функциям API, поэтому им не нужно объяснять в каждом новом приложении, как работает уже знакомая кнопка.
- Прибыль. Разработчики, которые создают API, могут их продавать, а не выкладывать в свободном доступе. Главное, чтобы был спрос.
Но есть и недостатки API:
- Неактуальность. Когда основная программа меняется, ее API не всегда обновляют вовремя, а иногда вообще не обновляют. Также API могут закрыть и его функции отключатся во всех приложениях.
- Поверхностность. Когда разработчик использует чужой API, он знает, как работает это API, но не знает, как работает исходный код. Это может стать проблемой для новых сотрудников внутри компании. Например, разработчик написал API для компании, а потом уволился. Все новые сотрудники пользуются API и не знают, как работает исходная программа, поэтому ее будет сложно починить в случае поломки.
- Ограниченность. API выполняет только то, что разрешили его создатели. Если нужно больше функционала, то его не получится впихнуть в готовый API чужой программы.
Виталий, разработчик HOSTiQ.ua 💬
«Когда работаешь с API, то можешь использовать только то, что описано в документации.
Иногда можно покопаться и найти скрытые возможности, но тогда непонятно, а можно ли их использовать, если они не описаны в документации.
Еще не всегда в документации есть примеры. Без примеров бывает неясно, как пользоватся функцией, и тогда ты просто не можешь ее применять.»
Какие бывают виды API
По типу доступа API делят на:
- Публичные API. Разработчики создали API для своей программы и дают пользоваться им всему миру. Такие API часто продают, чтобы получить дополнительный доход. Например, так делает Google с API Google Maps.
- Приватные или внутренние API. Разработчики скрывают эти API от всего мира. Например, приватные API используют компании, чтобы связать свои внутренние программы.
- Партнерские API. Специальные API, которые разработчики компаний пишут для партнеров и делятся только с ними. Например, API для связи базы данных компании и сторонней CRM-системы или email-сервиса.
- Составные API. Состоят из нескольких API, чтобы выполнять много последовательных действий. Обычно составные API создают, потому что они работают быстрее, чем один большой API.
Но вы могли слышать про другие типы API с непонятными приставками: RPC, SOAP и REST. Дальше постараемся объяснить, что это за приставки и в чем между ними разница. Может быть сложно во всем разобраться, зато потом получится подобрать нужные технологии для своего API.
Пьем чай, отдыхаем, смотрим видеоролик, и читаем дальше.
API обмениваются данными и функциями, для этого нужны четкие протоколы и архитектуры ― правила, по которым будет работать API. Архитектуру API можно сравнить с правилами игры в «дурака». Кто-то играет с джокерами, кто-то в переводного, а кто-то в обычного из 36 карт. Смысл игры не меняется, но структура разнится.
Существует три основных типа архитектур API: RPC, REST и SOAP. Их можно назвать «форматами», каждый из которых имеет уникальные характеристики и используется для разных целей. Есть и другие форматы API, но на момент написания статьи эти три — самые популярные.
👉 RPC ― это простой формат для отправки нескольких параметров и получения результатов. API RPC вызывают действия или процессы, в то время как другие API в основном обмениваются данными или ресурсами. RPC может использовать два разных языка для кодирования ― JSON и XML.
JSON поддерживает обмен только текстом, в то время, как XML обрабатывает текст, изображения, графики и диаграммы. Таким образом, XML предлагает больше возможностей по обработке документов, чем JSON.
Формат RPC не подходит для приватных API компаний из-за ограниченной поддержки типов данных. Однако RPC API подходят для внутренних частей составных API. Например, API RPC могут выполнять вызовы, не ожидая ответа от сервера, что важно для быстрых параллельных вычислений.
👉 Формат SOAP использует только язык кодирования XML. Работа с API с этой архитектурой самая сложная: SOAP очень структурированный и строго контролируемый формат.
SOAP используется, когда компании нужна повышенная безопасность и четко определенные правила для обменов данными. Разработчики часто используют SOAP для внутренних или партнерских API.
Виталий, разработчик HOSTiQ.ua 💬
«С SOAP я работал только 1 раз. Как вот тут написано, «разработчики вздрагивают, когда нужно работать с SOAP». Так было и у меня. Пока я делал задачу с SOAP API, у меня все время было ощущение, что я должен держать в голове слишком много или я что-то где-то упустил.»
👉 REST считается более простой альтернативой SOAP. Каждая единица информации для этого вида API ― уникальный URL-адрес, который можно запросить.
REST используют для быстрого обмена простыми параметрами, из которых состоят базы данных. Поэтому REST API хорошо подходит для взаимодействия больших баз данных. Эти характеристики делают REST популярным для публичных API, например, для мобильных приложений.
Для наглядности, вот разница между архитектурными стилями API в таблице:
RPC | SOAP | REST | |
Принцип стиля API | Вызов процедуры | Передача сообщения в строгом формате | Передача сообщения в виде ресурса |
Формат стиля API | JSON, XML, Protobuf, Thrift, FlatBuffers | Только XML | XML, JSON, HTML, простой текст |
Сложность использования стиля API | Легко | Сложно | Легко |
Сообщество пользователей стиля API | Большое | Маленькое | Большое |
Где применяется стиль API | Составные API или внутренние микросервисы | Платежные системы, идентификация в финансовых системах, поддержка устаревших систем | Публичные API |
Если вы хотите делать свои API для других — позаботьтесь о стабильном хостинге. Вряд ли кто-нибудь захочет использовать API-инструменты, которые время от времени недоступны.
На нашем хостинге мы гарантируем уровень аптайма в 99,9%, так что вам не придется волноваться из-за падения сервисов.
В комплекте с хостингом вы получаете удобную панель управления, быстрые SSD-диски и умную круглосуточную службу поддержки 💪 А еще его можно тестировать бесплатно в течение 30 дней.
Если же вы не разработчик, а пользователь API, мы тоже будем рады позаботиться о вашем сайте 😉
5 примеров API из нашей жизни
С технической частью разобрались, теперь давайте посмотрим, как выглядит API для пользователей.
API: примеры, с которыми мы сталкиваемся каждый день 👇
1. Прогноз погоды
Мы можем проверить прогноз погоды на компьютере, в телефоне и умных часах. Эти устройства самостоятельно ничего не знают о погоде, но они используют API. Даже вездесущий Google не собирает данные о погоде, а пользуется ответами API сайтов о прогнозах погоды.
2. Быстрая регистрация
На многих сайтах можно зарегистрироваться через аккаунт Facebook или Google ― быстрая регистрация тоже работает через API. Вместо того чтобы входить в ваш аккаунт Facebook, приложение с быстрой регистрацией проверяет по API, вошли ли вы в аккаунт. Если вы не вошли в аккаунт, приложение попросит вас подтвердить вход.
3. Оплата Apple Pay
Большинство интернет-магазинов предлагают оплатить товар Apple Pay или другими способами оплаты. Когда покупатель нажимает кнопку «Оплатить через Apple Pay», приложение отправляет запрос в API Apple Pay, указывая сумму заказа. Затем всплывающее окно просит покупателя подтвердить покупку. Если все идет по плану, API отправляет подтверждение платежа обратно в приложение.
4. Туроператоры
API отлично подходят для туристических услуг, потому что помогают программам обмениваться запросами на бронирование и информацией о свободных номерах. Без API туроператору пришлось бы лично обращаться к каждому отелю и авиакомпании, чтобы узнать о свободных местах.
5. YouTube не в YouTube
Когда вы смотрите видео с YouTube не на сайте YouTube, вы не задумываетесь, как это работает. Это тоже API, которым бесплатно делится YouTube. Если бы его не было, то в статье про котиков пришлось бы ставить ссылку на видео про котиков. А с API можно смотреть здесь и сейчас, не отрываясь от статьи.
Надеемся, что у нас получилось ввести вас в сложный мир API: теперь вы знаете, что такое API в программировании и какие бывают API. А еще с этого момента вы будете замечать, как много API вокруг вас на самом деле 🙂
Если у вас остались вопросы о том, как работать с API, задавайте их в комментариях!
Полезные статьи, которые стоит прочитать 👇
➔
Что такое админ-панель сайта и как туда зайти
➔
Что такое VPS/VDS, виртуальный хостинг, выделенный сервер и в чем их отличия