Главная | Все статьи | Код

Что такое API

Без стека Время чтения статьи ~11 минут
Что такое API главное изображение

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

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

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

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

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

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

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

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

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

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

Бесплатные курсы по программированию в Хекслете
  • Освойте азы современных языков программирования
  • Изучите работу с Git и командной строкой
  • Выберите себе профессию или улучшите навыки
Выбрать курс

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

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

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

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

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

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

  • GUI — graphical user interface, то есть графический пользовательский интерфейс. Им будет, например, эта страница нашего сайта.
  • API — программный интерфейс, он работает без графики. А пользователи могут обращаться к нему либо через GUI, либо через вызов определенных функций. Первое делают обычные пользователи, второе — разработчики и тестировщики.

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

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

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

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

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

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

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

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

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

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

  • Возможности самой программы.
  • Методы для вызова функции.
  • Данные, которые API отправит на сервер в процессе взаимодействия.

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

Виды API

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

  • REST

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

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

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

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

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

  • SOAP

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

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

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

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

  • GraphQL

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

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

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

  • WebSocket

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

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

  • gRPC API

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

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

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

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

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

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

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

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

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

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

  • Внутри системы

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

  • Между двумя системами

Это самая популярная ситуация, когда к сайту подключают стороннее 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 регулярно взаимодействуют программисты и тестировщики.

Бесплатные курсы по программированию в Хекслете
  • Освойте азы современных языков программирования
  • Изучите работу с Git и командной строкой
  • Выберите себе профессию или улучшите навыки
Выбрать курс

Аватар пользователя Анастасия Уминская
Анастасия Уминская 01 февраля 2024
7
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 7 марта
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 7 марта
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 7 марта
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 7 марта
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 7 марта
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 7 марта
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 7 марта
профессия
от 10 080 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 7 марта
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 7 марта
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
в разработке
Старт 7 марта
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время