API - интерфейс прикладного программирования

Расшифровка, назначение, применение и история API

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


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

Назначение API

Вы, вероятно, пользуетесь API каждый день и даже не задумываетесь об этом.


Если ваш телефон отображает прогноз погоды на главном экране, эта информация часто поступает от внешнего сервиса, такого как The Weather Company.


Когда вы нажимаете кнопку «Оплатить с помощью Яндекс Деньги» в интернет-магазине, сообщения о сумме и успешном платеже отправляются через экосистему Яндекса.


Вы когда-нибудь использовали сторонний веб-сайт для бронирования билетов или отеля? API делают это возможным. Мощные, быстрые, масштабируемые API, такие как Skyscanner API, TripAdvisor API и Expedia API, предоставляют невероятное количество информации на других веб-сайтах 24/7/365, гарантируя, что билеты и бронирования обрабатываются и записываются в Интернете. И даже некоторые авиакомпании предлагают свои собственные API, например, Lufthansa API и British Airways API, чтобы новые новые компании могли напрямую использовать их информации о рейсах.


Ниже мы записали видео по работе с API hh.ru - как спарсить зарплаты в опубликованных вакансиях:

7 характеристик хорошего API

Ниже дан базовый контрольный список хорошего API, который дает представление что важно:


  1. Стандартизирован. API используют общеизвестные протоколы и архитектуры, такие как HTTP или REST. Их легко понять разработчикам, они широко используются и интегрируются повсеместно.
  2. Документирован. API предназначен для использования разработчиками в любой точке мира с минимальной потребностью в общении с создателями API. Поэтому этим разработчикам имеет смысл иметь доступ к исчерпывающей, актуальной документации. Существуют некоторые отличные стандарты для создания хорошей документации, такие как спецификация OpenAPI или план API.
  3. Последователен. API должны быть предсказуемыми для разработчиков, использующих их. Какие бы элементы системы ни подвергались воздействию этих разработчиков, они должны использовать соглашения об именовании, а команды не должны делать одно в одной ситуации, а что-то другое в другой. Хороший API также будет обрабатывать ошибки последовательно, чтобы не было неприятных сюрпризов.
  4. Безопасен. Часть смысла API заключается в том, что он позволяет системам взаимодействовать с другими системами, не раскрывая слишком много информации о том, как они работают. Но это только часть того, как API могут быть защищены. Они также должны использовать актуальные сертификаты безопасности, быть разработаны таким образом, чтобы противостоять взлому, быть защищены от утечки информацию, которая не предназначена для общественного использования использования.
  5. Масштабируемый. Если API не масштабируем, он может подвисать при большом количестве одновременных запросов. Хотя это может не быть проблемой вначале использования, но может означать полную и дорогостоящий переделку всего ПО, если архитектура, лежащая в основе API, не оптимизирована, или API по своей сути не может обрабатывать тысячи запросов так же легко, как сотни запросов.
  6. Прост. Хороший API также должен быть простым в использовании. Используемые сообщения и форматы не должны быть настолько сложными, чтобы они мешали или замедляли процесс. Но это не значит, что это должно быть настолько просто, что не позволяет разработчикам делать все, что им нужно.
  7. Всеобъемлющий. Идеальный API дает разработчику чистый и четкий доступ к данным и действиям. Не должно быть отсутствующих команд или недоступных данных, если служба предлагает получение их другими способами, например, на веб-сайте. Что бы вы ни делали в браузере в качестве зарегистрированного пользователя, вы должны быть в состоянии сделать это через хороший API.

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

Краткая история API

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


Управление базами данных было первой областью вычислений, в которой использовался термин интерфейс прикладного программирования, причем самое раннее упоминание произошло в статье 1975 года "Реляционный и сетевой подходы: сравнение интерфейсов прикладного программирования".


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


Salesforce была одной из первых компаний, запустивших API в феврале 2000 года. Затем в ноябре 2000 года был eBay, а затем Amazon в 2002 году.


То время было началом API электронной коммерции. По пути Amazon также произвел революцию в облачных вычислениях с помощью другого API для своих облаков Amazon Web Services. Это обеспечило масштабируемое, быстрое и дешевое хранилище данных, которое было необходимо для следующего шага в росте API - социальных сетей.


Социальные сети, наконец, сделали API вирусными среди разработчиков. С Flickr API в 2004 году, а затем как с Facebook API, так и с Twitter API в 2006 году разработчики обнаружили, что они могут делать некоторые действительно интересные вещи с API. Виджеты, встраивать видео, кнопки "Поделиться". Все они были построены с использованием API.


Социальные сети, возможно, развили API. Переход на мобильные устройства сделал их обязательными.


Google Maps API был запущен в 2006 году, Foursquare в 2009 году, Instagram в 2011 году и так далее. Поскольку мобильные телефоны стали расширением нас самих, API стали расширением каждого популярного веб-сайта, отчасти потому, что они не станут популярными, если не облегчат другим использование своих данных.


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

Термины API

Что такое ключи и токены API?

Вы, вероятно, столкнетесь с некоторыми дебатами в Интернете о том, отличается ли токен API от ключа API, но эти два термина часто используются взаимозаменяемо. Поэтому, если вы не работаете с разработчиком или в компании, которая определяет разницу между ними, вы обычно можете предположить, что ключ API совпадает с токеном API.


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

d9vn4-78hfn-jnsv8-jnvsj-skdnvk

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


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

Что такое конечная точка API (endpoint)?

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


Поскольку они действуют как адреса, конечные точки API являются URL-адресами, и эти URL-адреса могут содержать много дополнительной информации, такой как ключи API или токены для аутентификации сообщения.


Вы можете думать о конечных точках как о том, где соприкасаются две системы. Конечные точки API обычно зависят от того, чего хочет достичь разработчик. Например, API может иметь одну конечную точку для запросов на получение данных, конечную точку для редактирования контента и другую конечную точку для поиска в системе.

Что такое вызов API?

И теперь мы перейдем к фактическим сообщениям, которые отправляются с помощью API. Они известны как вызовы API.


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


  • GET: данные запроса.
  • POST: добавьте данные.
  • PUT: изменить данные.
  • DELETE: удалить данные.

Вы также можете услышать фразу "запрос API". Это просто еще один способ сказать вызов API.

Нужен парсинг сайтов?