Что такое API?
Вы, вероятно, видели термин «API». Обновления операционной системы, веб-браузера и приложений часто объявляют о новых API для разработчиков. Но что такое API?
Интерфейс прикладного программирования
Термин API является аббревиатурой и означает «Интерфейс прикладного программирования».
Думайте об API как о меню в ресторане. В меню представлен список блюд, которые вы можете заказать, а также описание каждого блюда. Когда вы указываете, какие пункты меню вы хотите, кухня ресторана выполняет свою работу и предоставляет вам готовые блюда. Вы не знаете точно, как ресторан готовит эту еду, и вам не нужно.
Аналогично, API перечисляет набор операций, которые могут использовать разработчики, вместе с описанием того, что они делают. Разработчику не обязательно знать, как, например, операционная система создает и представляет диалоговое окно «Сохранить как». Им просто нужно знать, что это доступно для использования в их приложении.
Это не идеальная метафора, поскольку разработчикам, возможно, придется предоставлять свои собственные данные API, чтобы получить результаты, поэтому, возможно, это больше похоже на модный ресторан, где вы можете предоставить некоторые из своих собственных ингредиентов, с которыми будет работать кухня..
Но это в целом точно. API-интерфейсы позволяют разработчикам экономить время, используя преимущества реализации платформы, чтобы выполнить всю сложную работу. Это помогает уменьшить объем кода, который необходимо создать разработчикам, а также помогает обеспечить согласованность приложений в одной и той же платформе. API могут контролировать доступ к аппаратным и программным ресурсам.
API-интерфейсы облегчают жизнь разработчикам
Допустим, вы хотите разработать приложение для iPhone. Операционная система Apple iOS предоставляет большое количество API-интерфейсов, как и любая другая операционная система, чтобы вам было проще.
Например, если вы хотите встроить веб-браузер для отображения одной или нескольких веб-страниц, вам не нужно программировать собственный веб-браузер с нуля только для своего приложения. Вы используете API WKWebView для встраивания объекта браузера 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 для встраивания этой карты. Google предоставляет такие API-интерфейсы веб-разработчикам, которые затем могут использовать API-интерфейсы для создания сложных объектов прямо на своем веб-сайте. Если таких API не существует, разработчикам, возможно, придется создавать свои собственные карты и предоставлять свои собственные картографические данные, просто чтобы разместить небольшую интерактивную карту на веб-сайте..
И, поскольку это API, Google может контролировать доступ к Google Maps на сторонних веб-сайтах, гарантируя, что они используют его согласованно, а не пытаться беспорядочно встроить фрейм, показывающий, например, веб-сайт Google Maps..
Это относится ко многим различным онлайн-сервисам. Существуют API-интерфейсы для запроса перевода текста из Google Translate или размещения комментариев или твитов Facebook из Twitter на веб-сайте..
Стандарт OAuth также определяет ряд API-интерфейсов, которые позволяют входить на веб-сайт с помощью другой службы, например, использовать учетные записи Facebook, Google или Twitter для входа на новый веб-сайт, не создавая новую учетную запись пользователя только для этого сайта. , API-интерфейсы - это стандартные контракты, которые определяют, как разработчики взаимодействуют со службой, и вид результатов, которые разработчики должны получить обратно..
Если вы справились с этим, у вас будет лучшее представление о том, что такое API. В конечном счете, вам не нужно знать, что такое API, если вы не разработчик. Но если вы видите, что программная платформа или служба добавили новые API для различных аппаратных средств или служб, разработчикам должно быть проще воспользоваться этими функциями.
Изображение предоставлено: patpitchaya / Shutterstock.com.