Программный интерфейс приложения, или интерфейс прикладного программирования (API) – это код, который позволяет двум программам взаимодействовать друг с другом. API определяет правильный способ для разработчика запрашивать службы из операционной системы (ОС) или другого приложения и предоставлять данные в разных контекстах и по нескольким каналам. На заре Web 2.0 концепция интеграции данных и приложений из разных источников называлась mashup.

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

Интернет, программное обеспечение, предназначенное для обмена информацией через Интернет, и облачные вычисления – все это вместе повысило интерес к API в целом и к услугам в частности.

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

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

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

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

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

Наиболее распространенными архитектурами API являются передача репрезентативного состояния (REST) и простой протокол доступа к объектам (SOAP), который определяет стандартную спецификацию протокола связи для обмена сообщениями на основе XML. SOAP требует меньше кода, связанного с инфраструктурой низкого уровня, чем REST, но REST API легче масштабировать и повторно развертывать, проще реализовать и интегрировать с веб-сайтами и службами. Текущая отраслевая тенденция в основном заключается в использовании REST API, особенно для веб-взаимодействий.

Почему API важны для бизнеса

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

Растущее количество веб-сервисов, предоставляемых через API-интерфейсы поставщиками облачных услуг, также поощряет создание приложений для облачных вычислений, усилия в области Интернета вещей (IoT) и приложений для поддержки мобильных устройств и пользователей.

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

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

Каковы преимущества использования API?

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

Публичные и партнерские API дают организациям:

  • Безопасный контроль и управление доступом пользователей и систем к определенным данным и функциям услуг;
  • Возможность позволять третьим сторонам использовать свои данные (даже в ограниченном смысле), что увеличивает узнаваемость бренда компании;
  • Расширять свою клиентскую базу данных и даже повышать коэффициент конверсии, согласовывая свои услуги с услугами других надежных брендов;
  • Монетизировать свои API, чтобы они стали отдельной статьей дохода. Это обычная тактика для онлайн-платежных шлюзов – например, компании, использующие API PayPal, готовы платить за возможность использовать надежную платежную систему.

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

Типы API

Существует четыре основных типа API-интерфейсов: частные, общедоступные, партнерские и составные.

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

API могут быть дополнительно классифицированы как локальные, веб-интерфейсы или программные API.

  • Локальные API предлагают сервисы ОС или промежуточного программного обеспечения для прикладных программ. API Microsoft .NET, TAPI (Telephony API) для голосовых приложений и API доступа к базе данных являются примерами локальной формы API.
  • Веб-API предназначены для представления широко используемых ресурсов, таких как HTML-страницы, и доступ к ним осуществляется с помощью простого протокола HTTP. Любой веб-URL активирует веб-API. Веб-API часто называют RESTful, потому что издатель интерфейсов REST не сохраняет никаких данных внутри между запросами. Таким образом, запросы от многих пользователей могут смешиваться, как если бы они были в Интернете.
  • Программные API основаны на технологии удаленного вызова процедур (RPC), которая заставляет удаленный программный компонент казаться локальным для остальной части программного обеспечения. API-интерфейсы сервис-ориентированной архитектуры (SOA), такие как API-интерфейсы Microsoft WS, являются программными API-интерфейсами.

Почему дизайн API так важен

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

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

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

Какие есть примеры API?

Операционные системы и инструменты промежуточного программного обеспечения раскрывают свои функции через наборы API, обычно называемые «наборами инструментов». Два разных набора инструментов, поддерживающих одни и те же спецификации API, взаимозаменяемы для программистов, что является основанием для заявлений о совместимости. Спецификации Microsoft .NET API являются основными для пакета промежуточного программного обеспечения с открытым исходным кодом, эквивалентного Linux, который теперь поддерживается, например, Microsoft.

Многие программные продукты и инструменты предоставляют функциональные возможности через API, от инструментов DevOps, таких как Docker, Jenkins и GitlLab, до корпоративных платформ, таких как Microsoft Sharepoint. Социальные сети, в частности, используют преимущества открытых API-интерфейсов для поддержки сторонних функций, таких как возможность создавать новостные ленты и обмениваться фотографиями.

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

Тенденции API

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

REST и Web

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

И REST, и SOAP могут вызывать облачные сервисы, подключаться к ним и взаимодействовать с ними, но REST все чаще предпочтительнее для веб-API, поскольку он использует меньшую пропускную способность и предлагает больше возможностей для языков программирования, таких как JavaScript или Python. Крупные веб-сайты, такие как Amazon, Google, LinkedIn и Twitter, используют RESTful API.

API и облако

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

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

API как сервисы

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

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

Публикация и управление API

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

Тестирование API

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

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

Тестирование API обычно выполняется как часть управления жизненным циклом приложения (ALM) как для программного обеспечения, которое публикует API, так и для всего программного обеспечения, которое их использует. API-интерфейсы также должны быть протестированы в их опубликованной форме, чтобы убедиться, что к ним можно получить надлежащий доступ.

Управление API

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

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

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