Россия и Беларусь начали и продолжают войну против народа Украины!

Что такое API и как это работает?

  Дмитрий Бушуев  | 

  Обновл. 6 Окт 2021  | 

 8019

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

Что такое API?

API (сокр. от «Application Programming Interface») — это программный интерфейс приложения, который предоставляет разработчику набор функций вместе с описанием того, что эти функции делают. Разработчику необязательно знать, как, например, операционная система создает и отображает диалоговое окно «Сохранить как». Достаточно того, что такой функционал существует и доступен для использования в приложении разработчика.

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

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

Как работают API?


Предположим, вы хотите создать приложение для iPhone. Чтобы облегчить вам эту задачу, операционная система iOS от Apple, как и любая другая операционная система, предоставляет большой набор API. Например, если вы хотите иметь в своем приложении средство отображения одной или нескольких веб-страниц, вам не нужно будет с нуля программировать свой собственный веб-браузер. Достаточно обратиться к API WKWebView, чтобы встроить движок WebKit (Safari) в свое приложение.

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

Стоит отметить, что это относится и к любой другой платформе. Например, вы хотите создать диалоговое окно в Windows? Для этого есть API. Хотите поддерживать аутентификацию по отпечаткам пальцев на Android? Для этого тоже есть API.

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

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

Где используются API?

Рассмотрим наиболее популярные применения:

   API применяются в настольных приложениях.

   API лежат в основе большинства веб-приложений.

   API делают возможным существование мобильных приложений.

   API являются интеграцией для т.н. no-code решений.

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

   API определяют правила передачи информации между приложениями, системами и устройствами.

   API даже присутствуют в таких повседневных вещах, как: автомобили, дверные звонки, посудомоечные машины и носимые устройства.

API и контроль доступа к ресурсам


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

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

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

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

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

API и связь между сервисами

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

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

Это относится и ко многим различным онлайн-сервисам. Существуют API для запроса перевода текста из Google Translate или для размещения комментариев Facebook и т.д.

Стандарт OAuth также определяет ряд API, которые позволяют вам авторизоваться на веб-сайте с помощью других сервисов, например, использовать свои учетные записи Facebook, Google или Twitter без создания новой учетной записи пользователя на текущем веб-сайте. API — это «контракты», которые определяют, как разработчики взаимодействуют с сервисами, и вид выходных данных, которые эти разработчики должны получить обратно.

Заключение


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

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (37 оценок, среднее: 4,97 из 5)
Загрузка...

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *