Открытые Стандарты для IT часто связывают с API

Что такое API?

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

Компоненты хорошо проработанного API

  • 1. Поддержка нескольких языков / форматов
    Разные приложения поддерживают разные языки разметки, включая JSON, XML и CSV.
  • 2. Документация
    Документация, необходима для пояснения как использовать API и чтобы соотвестовать DevOps — методологии автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения.
  • 3. Сообщество
    Разработчикам нужна помощь от других разработчиков.
    Часто многие из наиболее широко распространенных API поддерживаются надежными сообществами разработчиков.

Типы API

  • REST API
    API-интерфейсы REST, также известные как API-интерфейсы RESTful, расшифровываются как передача репрезентативного состояния. В последнее время популярность REST API выросла как часть веб-сервисов. API REST предназначены для разработчиков, позволяющих выполнять запросы и получать ответы через функции HTTP. Существует четыре различных HTTP-команды, на которых основан REST. К ним относятся GET, PUT, POST и DELETE. Когда вы открываете Instagram и ищете последний и лучший мем дня, это приложение использует REST API.
  • API-интерфейсы SOAP
    SOAP означает простой протокол доступа к объектам. REST — это архитектурный стиль, а SOAP — это протокол, определенный стандартом. SOAP зависит от систем и программирования на основе XML, поэтому имеет тенденцию иметь более крупные и дорогие данные. API-интерфейсы SOAP также обеспечивают более высокий уровень безопасности. Распространенный вариант использования — приложение, взаимодействующее с финансовым учреждением.
  • API-интерфейсы RPC
    RPC означает удаленный вызов процедур. API RPC были самой ранней формой API, поскольку они предназначены для выполнения блока кода на другом сервере. Когда он используется через HTTP, он может стать веб-API.

Разница между публичным API и частным API

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

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

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

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

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

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

API, работают, имея два компонента — клиент и сервер. Клиент — это приложение или система, которым необходим доступ к функциональности, в то время как сервер — это система, в которой размещен API.
Для примера возьмем API, который сообщает вам ваш IP-адрес в сети интернет. Наше приложение будет клиентом, получающим доступ к специальному веб-сайту, который является сервером.
Распространенными API являются REST и SOAP. REST стал популярным в последние годы благодаря своей простоте. Ниже приведен пример того, как работает REST API:
Клиент отправляет запрос API на определенную конечную точку URL на сервере. Например, чтобы получить IP-адрес вашего компьютера, клиент может отправить GET запрос по адресу: https://api.ipify.org?format=json.
Сервер взаимодействует с основной базой данных или программными системами и упаковывает ответ. Он, отправляет обратно ответ с данными, обычно в формате JSON.
Клиентское приложение обрабатывает этот ответ и использует его для своих целей.
Вкратце, клиентское приложение выполняет вызовы API на удаленный сервер, который отправляет обратно структурированные данные — и затем эти данные можно отображать или манипулировать ими в клиентском приложении.

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

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

  • Google Maps API — это позволяет любому приложению встраивать Google Maps. Это упрощает добавление картографических функций без создания сложного картографического программного обеспечения с нуля.
  • Twitter API — позволяет приложениям получать доступ к твитам и данным Twitter, таким как количество подписчиков, профили и т.д., и отображать их. Именно так создаются клиенты Twitter и приложения для управления.
  • Stripe API — позволяет приложениям и веб-сайтам легко принимать платежи, не выполняя сложных финансовых и нормативных требований, связанных с обработкой платежей.
  • Slack API — обеспечивает автоматизацию и создание пользовательских интеграций с платформой обмена сообщениями Slack. Приложения могут получать уведомления о событиях через этот API.
  • Open Weather Map API — предоставляет текущие и будущие данные о погоде, такие как вероятность осадков, температура и т.д., на которые полагаются погодные приложения.
  • YouTube API — позволяет встраивать видео с YouTube в другие приложения и создавать пользовательские клиенты YouTube.

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

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

  • API скрывают все «сложные» детали «под капотом» — это позволяет разработчикам легко использовать функциональность, не создавая все с нуля.
  • Экономия времени и усилий — использование существующих API и кода значительно экономит время и усилия при разработке.
  • Возможность повторного использования — как только API создан и общедоступен, любое количество приложений может использовать его, что приводит к возможности повторного использования.
  • Масштабируемость — API позволяют легко масштабировать до больших баз пользователей без необходимости напрямую обрабатывать нагрузку.
  • Предоставляют основные функциональные возможности — будь то обработка платежей, картографирование, обмен сообщениями или многое другое — API предоставляют готовые к использованию основные функциональные возможности.
  • Монетизация — такие компании, как Google и Twitter, предоставляют API, которые позволяют им монетизировать свои платформы за счет дальнейшего расширения использования.

Параметры безопасности API

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

  • Аутентификация — защитите свои API, внедрив механизмы аутентификации, такие как OAuth (или Open Authorization), чтобы гарантировать, что только авторизованные клиенты могут получить к ним доступ.
  • Контроль доступа — установите надлежащий контроль доступа, чтобы ограничить доступ к API только той функциональностью, которая требуется каждому клиенту.
  • Шифрование — используйте HTTPS и шифруйте все сообщения API, чтобы предотвратить отслеживание данных при передаче.
  • Ограничение скорости — реализуйте ограничение скорости для предотвращения злоупотреблений и атак типа «отказ в обслуживании» через API.
  • Проверка входных данных — проверка всех входных данных для предотвращения атак, таких как SQL-инъекция, которые компрометируют сервер через API.
  • Мониторинг — отслеживайте статистику использования API, ошибки и задержки, чтобы оставаться на пике производительности и быстро обнаруживать новые угрозы.
  • Документация — встроите защиту непосредственно в документацию по API, чтобы разработчики с самого начала понимали правильное использование.

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