Что такое API

Читать в полной версии →

API — это программный интерфейс приложения. Он состоит из набора правил и методов для обмена данными. Расскажем все о функциях и особенностях API.

Что такое API и как он работает

API — это аббревиатура от английского Application Programming Interface, что переводится как программный интерфейс приложения. Далеким от IT людям проще всего объяснить это понятие как контракт или договор.

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

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

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

У чего есть свои API:

Чаще всего, под API подразумевают именно третий вариант.

Почему API называют интерфейсом

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

Интерфейс — граница между объектами, способ контакта или договор.

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

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

Для взаимодействия с программным продуктом можно использовать:

Использование API

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

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

В него входит набор правил и инструкций, по которым можно работать с этим приложением. Его можно оставить в открытом доступе или продавать всем желающим.

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

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

Они могут только посылать туда данные через запросы и получать в ответ другие данные. Принципы этой работы указаны в документации.

Функции API: что можно делать с его помощью

Функциональность зависит от характеристик программного продукта. Например, API карты будет показывать местоположение пользователя и нужные ему объекты. А API платежной системы — будет помогать проводить транзакции.

В плане функциональности, необходимо учитывать три параметра:

Программисты могут создавать какие угодно программные интерфейсы. Но есть стандарты, по которым они работают и есть архитектура. От нее будет зависеть, как именно API работает с данными.

Виды API

Есть несколько популярных решений, которые используют большинство приложений.

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

REST — не протокол, а набор рекомендаций, которым может следовать разработчик. Он работает по принципу клиент-серверной архитектуры и зачастую использует протокол HTTP.

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

Для экономии ресурсов в REST используют кэширование. Оно производится на стороне клиента, что ускоряет производительность и уменьшает нагрузку на сервера.

API на основе REST используют унифицированный интерфейс, что упрощает их интеграцию в другие сервисы.

Это протокол доступа к объектам, который также может работать через HTTP. В качестве языка взаимодействия между сервером и клиентом используют XML. Сейчас эту технологию считают устаревшей.

Программные интерфейсы на SOAP более формализованы, у них есть четкие спецификации, поэтому взаимодействие с ними максимально предсказуемо.

Этот тип архитектуры имеет встроенную обработку ошибок, что обеспечивает ее надежность. А за безопасность отвечает интеграция с протоколами WS-Security. Стандарт обеспечивает, например, шифрование и цифровые подписи. Также SOAP поддерживает транзакции, совместимые с ACID.

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

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

Основная особенность таких программных интерфейсов — возможность запрашивать избранные типы данных, которые необходимы в настоящий момент.

GraphQL позволяет объединять несколько запросов в один, что уменьшает количество обращений к серверу.

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

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

Этот стандарт архитектуры разработала компания Google. В его основе лежит принцип использования вызова функции как основного способа связи между сервером и клиентом.

К достоинствам программных интерфейсов на основе gRPC API относят лаконичное содержание и простоту в коммуникации.

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

Преимущества работы с API

Использование сторонних API — одна из основ современной разработки. Такой подход, с одной стороны, позволяет программистам продавать свой интеллектуальный продукт и зарабатывать на его использовании.

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

Преимущества использования API:

  1. Безопасность. Небольшим компаниям трудно соблюдать все правила информационной безопасности при разработке программного продукта. Вместо этого можно воспользоваться готовыми API, которые создали крупные корпорации. Например, так работают модули платежных систем на сайтах.
  2. Экономия денег. Разрабатывать с нуля всю функциональность приложения — сложно и дорого. Программисты постоянно пользуются готовыми решениями. Например, фреймворками — каркасами приложений или библиотеками — кусками готового кода. Через API они могут использоватьподключить готовый модуль, который уже реализовали сторонние разработчики.
  3. Интеграция с популярными сервисами. Разработчик может написать собственную систему авторизации на сайте, но не собственную картографию. Также зачастую есть необходимость подключить к сайту решения партнеров. Например, интернет-магазины интегрируют у себя модули служб доставки. За все эти взаимодействия отвечают API.

Как вызвать API и как с ним работать

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

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

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

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

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

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

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

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

Примеры использования API

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

Мы уже упоминали картографические сервисы. Самые популярные в России — «Яндекс.Карты» и «2.ГИС». Они предоставляют разработчикам бесплатный доступ к своим API.

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

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

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

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

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

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

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

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

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

Он будет в режиме реального времени показывать актуальные цены.

Особенности современного API

По способу доступа все программные интерфейсы можно разделить на три типа.

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

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