Что такое API?

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

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

Термин API - это аббревиатура, означающая «интерфейс прикладного программирования».

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

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

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

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

API-интерфейсы облегчают жизнь разработчикам

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

Если вы хотите встроить веб-браузер, например, для отображения одной или нескольких веб-страниц, вам не нужно с нуля программировать собственный веб-браузер только для вашего приложения. Вы используете WKWebView API для встраивания объекта браузера WebKit (Safari) в свое приложение.

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

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

API-интерфейсы контролируют доступ к ресурсам

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

СВЯЗАННЫЙ: Как запретить веб-сайтам запрашивать ваше местоположение

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

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

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

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

API-интерфейсы используются для связи между службами

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

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

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

СВЯЗАННЫЕ: Что такое OAuth? Как работают кнопки входа в Facebook, Twitter и Google

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

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

Изображение предоставлено: patpitchaya / Shutterstock.com.