Что такое API и как с ним работать

BOOX

Стаж на ФС с 2012 года
Команда форума
Служба безопасности
Private Club
Регистрация
23/1/18
Сообщения
29.044
Репутация
11.695
Реакции
61.865
RUB
50
Для работы многих приложений, онлайн-коммерции, показа онлайн-информации, тестирования ПО, разработки программ применяется API.

Расскажем подробнее о том, что такое «апи» , для чего необходимо, где найти, а также о преимуществах и недостатках API-проколов.

api.png

Что такое API

API (от англ. application programming interface — интерфейс приложений программ) — технология взаимодействия различных компьютерных приложений. С помощью данного инструмента одна программа (сайт, веб-приложение, фреймворк, операционная система) получает доступ к данным другой по «адресу».

Например, к файлам, скриптам, набору инструкций, классам, библиотекам, протоколу и так далее.

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

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

Через API работают терминалы оплаты в супермаркетах, «Яндекс.Карты», «Дзен.Новости», агрегаторы такси, сервисы показа курсов валют, бронирования отелей, заказа авиабилетов, виджеты погоды и другое.

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

Сайт «Яндекс.Карт» через «апи» взаимодействует с сервером поставщика услуг (картографическими сервисами EuroGeographics, Norwegian Mapping Authority, 2012 NAVTEQ, IGN 2009 — BD TOPO и другими), получая информацию. Сторонние данные появляются и визуализируются на сайте «Яндекс.Карт».

Аналогично работают виджеты курса валют, погоды, сервисы заказа билетов и прочее.

ПО сайта берет у поставщика данных требуемую информацию, которая в виде картинки показывается пользователю. Установленные в ОС Windows программы соединяются с системой через WinAPI: например, вызывают всплывающие окна, вывешивают иконку на «Рабочий стол», создают меню, делают отрисовку на экране и так далее.

Типы API

В зависимости от характера взаимодействия различают несколько видов API.

Наиболее распространенные:
  1. Web-API. Интеграция ПО на удаленных серверах осуществляется через интернет. Программный интерфейс применяет стандартные протоколы обмена данными — HTTP, SOAP API, RESTful API.
  2. Файловые. Предоставляют доступ к файловой системе. Используются в облачных хранилищах (Dropbox, Google Drive, Amazon S3).
  3. Инструменты разработчиков. Позволяют создавать ПО. В частности, через SDK (Software Development Kit) предоставляется доступ к платформам кодирования, аналитической информации (например, от Google о пользовательских действиях), монетизации от рекламы.
  4. API-OS. Дает доступ к базам данных, файлам операционных систем. Например, POSIX для Linux, WinAPI для Windows.
  5. Библиотеки. Способствуют интеграции скриптов в свои разработки, между разными языками программирования.
  6. DB/DWH. Интегрируется с базами данных, аналитики. Применяется в аналитических, бухгалтерских программах. Для Python это SQLAlchemy, для Java — JDBC и так далее.
  7. API соцсетей. Способствует интеграции с социальными сетями. В частности, с «Одноклассниками», «ВКонтакте», Instagram*, Facebook*, Twitter и другими.
  8. Графические. Делают визуализацию информации, генерацию графических интерфейсов: OpenGL, DirectX и другое.
  9. Мобильные. Проводят интеграцию с мобильными операционными системами: iOS, Windows Phone, Android.
  10. Микросервисные. Налаживают взаимодействие между интерфейсами нескольких микросервисов.
Пользователи компьютеров, смартфонов постоянно работают с системами, взаимодействующими через программный интерфейс. API-взаимодействие производится с помощью протоколов (архитектурных стилей). Они стандартизируют управление ресурсами, вызов функций, обмен данных.

Наиболее распространенными API-протоколами являются GraphQL, SOAP, REST, RPC, WebSocket.

REST API

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

Достоинства REST API:
  • применение стандартных схем передачи информации на основе HTTP (PUT, DELETE, GET, POST);
  • масштабируемость;
  • кеширование;
  • простота.
Благодаря уже широко освоенным методам соединения (HTTP) найти поставщика, освоить протокол проще, чем его аналоги.

Из минусов можно отметить относительно большую нагрузку на сеть, небезопасность, отсутствие единого стандарта, работу только с HTTP.

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

RPC

Метод вызова удаленных процедур. Реализуется в форме tRPC (на языке TypeScript), gRPC (HTTP/2 по Protocol Buffers). С помощью этой технологии клиент делает запрос процедуры или функции программы на удаленном сервере, принимая в ответ готовый результат.

Преимущества:
  • высокая скорость;
  • стандартизация;
  • простота работы.
На RPC переходят многие организации, среди которых Dropbox (в основе архитектуры SOA корпоративного RPC-фреймворка Courier), Netflix и другие.

Недостатки: относительная сложность реализации, недостаточная распространенность, слабая поддержка.

SOAP

Для обмена структурированными сообщениями в формате XML. Может использоваться совместно или поверх протоколов прикладного уровня (FTP, HTTP, HTTPS, и другое). При работе применяет шифрование, цифровую подпись, что делает технологию одной из самых безопасных.

Преимущества:
  • высокий уровень безопасности;
  • универсальность;
  • стандартизация.
Используется для систем, где основным требованием служит безопасность: например, корпоративных.

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

GraphQL API

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

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

Минусы: относительная небезопасность, сложность настройки. GraphQL применяется реже, чем SOAP или REST.

WebSocket API

Устанавливает соединение между клиентом и сервером поверх TCP с помощью JS. Используется для работы графических интерфейсов, веб-браузеров через их библиотеки. Из-за развития WebAssembly S. I. WebAssembly постепенно уходит в разряд устаревших.

Преимущества:
  • широкое распространение;
  • высокое качество передачи.
На конец 2024 года с помощью WebSocket работают браузеры Mozilla Firefox, Google Chrome и другие на базе Chromium, Opera, Internet Explorer, Apple Safari и прочие.

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

Как использовать API

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

Для решения каких задач используют API

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

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

Области применения «апи»-технологии:
  1. Операционные системы. ОС предоставляют библиотеки, базы, файлы, функции для работы программ, разработки сторонних приложений.
  2. Языки программирования. Обеспечивают взаимодействие различных программных продуктов: например, операционной системы, написанной на C++, и видеоредактора на Python.
  3. Передача данных. Подключение к интернету осуществляется через протоколы HTTP, SOAP API и другие.
  4. Социальные сети «ВКонтакте» , «Одноклассники». Instagram*, Twitter, Facebook* предоставляют свои базы, функции сторонним пользователям.
API-взаимодействие реализуется для широкого круга задач:
  • работы большинства десктопных, веб-программ, CRM-систем;
  • онлайн-торговли;
  • показа на сайте, ПК, смартфоне меняющейся информации;
  • перевода текстов;
  • авторизации на сайте через виджет соцсетей, банка, «Госуслуг»;
  • разработки собственных приложений;
  • реализации программных решений без применения кода.
Повышаются безопасность, качество, скорость разработки, увеличивается функциональность. Благодаря применению уже работающих программных продуктов стоимость разрабатываемого ПО снижается.

Где взять API

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

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

Большинство API-кодов не требуют дополнительных действий.

Например, виджет погоды «Яндекса», курсов валют ЦБ РФ для стороннего сайта начинают работать сразу после установки на веб-страницу. Никаких дополнительных действий, кодового «обертывания» не требуется.

Официальные сайты и документация

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

Ресурсы работы с REST API:
  1. VK-API dev.vk.com. Интеграция с «ВКонтакте», получение ключа доступа, объектов, методов, форматов и так далее.
  2. REST API GitHub docs.github.com. Коды GitHub.
  3. DaData.ru dadata.ru. Подключение к компаниям (банкам, ФНС, базе ЕГРЮЛ, аффилированным организациям и так далее).
  4. Polygon.io Stocks API polygon.io. Соединение на PHP, Python, JavaScript, Go с фондовыми биржами США.
  5. Kraken REST API docs.kraken.com. Внедрение в собственные программы, алгоритмы торговых операций на платформе Kraken.
  6. Blockchain.com Exchange api.blockchain.com. Интеграция с биржей криптовалют Blockchain.com.
  7. Gate gate.io. Подключение к криптобирже Gate.
  8. ФИАС (КЛАДР) kladr-api.ru. Соединение с ФИАС в облаке с помощью Query-плагина fias-api / jquery.
Сервисы работы с GraphQL:
  1. GraphQL GitHub docs.github.com. Коды GitHub.
  2. Shopify shopify.dev. Полный набор инструментов для торговли.
  3. Countries Ttrevorblades countries.trevorblades.com. Внедрение данных по странам мира.
  4. Конструкторы anilist.co, studio.apollographql.com. Онлайн-создание конструкций по GraphQL-моделям.
  5. Graphql CanopyAPI graphql.canopyapi.co. Интеграция с базой товаров Amazon.
Ресурсы работы с SOAP:
  1. Банк России cbr.ru. Котировки на заданный день, справочник по кодам валют, динамика привлеченных средств, другие данные Центробанка РФ.
  2. PayPal developer.paypal.com. Интеграция с PayPal.
  3. Конструктор learnwebservices.com. Составление запросов по SOAP.
  4. Конвертер dataaccess.com. Конвертация чисел.
Сайты для работы с RPC: Google API cloud.google.com, googleapis.github.io. Вызов АПИ Google.

Ресурсы для работы с WebSockets:
  1. Polygon.io Stocks API polygon.io. Подключение к фондовым биржам США.
  2. Gate gate.io. Подключение к криптобирже Gate.
  3. Binance WebSocket binance-docs.github.io. Интеграция с криптобиржей Binance.
  4. Blockchain.com Exchange api.blockchain.com. Подключение к бирже криптовалют Blockchain.
  5. EXMO info.exmo.me. Соединение с криптобиржей EXMO.
Рекомендуется пользоваться только официальными сервисами API.

Платформы и сообщества для разработчиков

Для получения доступа к платформам необходимо:
  1. Зарегистрироваться на официальном сайте поставщика услуг.
  2. Взять код или связать разработанную программу с API-скриптом.
  3. Отослать запрос, получив ответ.
Популярные API-сервисы для разработчиков:
  1. МТС (exolve.ru). Конструктор омниканальных диалогов мобильного оператора МТС.
  2. «Юмани» (Юмани.ru). API-технология платежной системы для проведения платежей.
  3. «Яндекс.Карты» (yandex.ru/maps-api). Внедрение виджета, технологий картографического сервиса «Яндекса» для сайта, десктопной программы.
  4. WP Rest (developer.wordpress.org). Интеграция с самым популярным движком для сайтов WordPress.
  5. PlaceKitten (publicapis.io). Создание изображений котенка для разработчиков.
  6. HeadHunter (Экс экс.ru). API-интеграция с одноименной биржей вакансий.
  7. Common Crawl (commoncrawl.org). База веб-страниц глобального интернета (>5 млрд).
Сообщества API-разработчиков созданы у большинства API-сервисов. Есть крупные форумы (publicapis.io), группа «ВКонтакте» (apiclub), разделы на популярных у программистов, на порталах (Habr, СyberForum) и так далее.



* Meta и входящие в нее Facebook и Instagram признаны экстремистскими организациями, деятельность которых запрещена в РФ.


 
  • Теги
    application programming interface интерфейс приложений программ что такое api
  • Сверху Снизу