Найти в Дзене
IT - Это просто

Что такое API и как он работает (Простыми словами с примерами)

Оглавление

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

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

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

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

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

Что такое API?

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

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

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

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

Почему API важны?

Теперь, когда мы знаем, что такое API в простых терминах, давайте поговорим о том, почему они так важны:

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

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

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

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

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

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

Набор функций API

-2

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

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

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

API поможет:

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

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

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

-3

Вызов API напрямую

Когда система обращается к своим функциям или к другой системе при помощи кода — это называется вызовом API. Например, автоматический тестировщик запускает проверку или программист пишет команду «вызвать API». Для прямого вызова нужен разработчик или программа, которые создадут код. Этот метод используют для обмена данными или для изменений внутри программы, которые не коснутся ее графического интерфейса.

Косвенный вызов API

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

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

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

Пример:

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

Клиент отправляет запрос API на определенную конечную точку URL на сервере. Например, чтобы запросить все рецепты, содержащие курицу, клиент может отправить запрос GET по адресу:

http://grocerystore.com/recipes/chicken

Сервер обрабатывает эти запросы, взаимодействует с базовой базой данных или программными системами и упаковывает ответ.

Сервер, наконец, отправляет обратно ответ с данными, обычно в формате JSON. Таким образом, все рецепты курицы могут быть отправлены обратно в виде объектов JSON.

Клиентское приложение обрабатывает этот ответ и отображает рецепты пользователю или использует данные в приложении по мере необходимости.

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

Не понятно? Давайте еще один пример:

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

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

-4

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

Вместо того, чтобы спрашивать Влада, Катя решила узнать погоду в интернете и вбила в поиск «погода в Екатеринбурге». В тот момент, когда она нажала кнопку «искать», включился API. Поисковик дешифровал город в геоданные и передал на сервис код, который объяснил серверу: «пользователь желает знать, какая там погода на 56.809752, 60.493842». Сервер проверил информацию и ответил ему кодом: «температура 13, ощущается 10, влажность 35». Поисковик получил этот ответ, перевел его в картинку с текстом и показал Кате: 13 градусов, ощущается как 10, влажность 35%.

-5

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

Типы API по способу работы

REST API

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

SOAP API

Аббревиатура от Simple Object Access Protocol. Он похож на REST, но у него более строгий принцип работы. Он запрашивает информацию о безопасности и требователен к тому, как именно приложение или сайт отправляет сообщения. Особенность этого вида программного интерфейса в том, что данные передаются строго на языке XML по определенным стандартам. Его используют, когда для корректной работы сервера и приложения нужно сохранение состояния или когда важно сделать соединение более безопасным.

-6

API браузера

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

iOS и Android API

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

-7

Типы API по доступности

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

Частные API

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

Общедоступные API

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

Партнерские API

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

Составные API

Объединяет в себе несколько видов API, благодаря этому становится более устойчивым и универсальным.

Реальные примеры API

-8

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

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

Twitter API — позволяет приложениям получать доступ к твитам и данным Twitter, таким как количество подписчиков, профили и т.д., и отображать их. Именно так создаются клиенты Twitter и приложения для управления.

Stripe API — позволяет приложениям и веб-сайтам легко принимать платежи, не выполняя сложных финансовых и нормативных требований, связанных с обработкой платежей.

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

Darksky Weather API — предоставляет текущие и будущие данные о погоде, такие как вероятность осадков, температура и т.д., на которые полагаются погодные приложения.

YouTube API — позволяет встраивать видео с YouTube в другие приложения и создавать пользовательские клиенты YouTube.

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

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

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

-9

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

-10

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

Теперь, когда вы понимаете основы API, давайте поговорим о том, почему они обеспечивают такую большую ценность:

Абстрактная сложность — API скрывают все запутанные детали и связанные с ними сложности “под капотом”. Это позволяет разработчикам легко использовать функциональность, не создавая все с нуля.

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

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

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

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

Монетизация — такие компании, как Google и Twitter, предоставляют API, которые позволяют им монетизировать свои платформы за счет дальнейшего расширения использования.

Соображения безопасности API

Однако важно отметить, что API также представляют риски для безопасности, которые необходимо снизить. Вот некоторые ключевые соображения:

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

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

Шифрование — используйте HTTPS и шифруйте все сообщения API, чтобы предотвратить отслеживание данных при передаче.

Ограничение скорости — реализуйте ограничение скорости для предотвращения злоупотреблений и атак типа "отказ в обслуживании" через API.

Проверка входных данных — проверка всех входных данных для предотвращения атак, таких как SQL-инъекция, которые компрометируют сервер через API.

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

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

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

Документация


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

Некоторые типы документации API:

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

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

Концептуальная документация. Объясняет цель API, ключевые концепции и то, как он вписывается в более широкую экосистему.

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

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

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