Api что это в программировании: простыми словами об интерфейсах и интеграции по API / Skillbox Media

API – что это такое простыми словами: примеры использования функционала

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

Где используются API-технологии

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

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

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

Основной функционал API

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

Принцип работы механизма API состоит в организации многоуровневой иерархии, в которой подчинённые компоненты создаются с одинаковой структурой. Выстраивается стандартная сетевая модель OSI с определённым количеством ступеней (не менее 7). Внутренние уровни классифицируются, выделяют приложения HTTP, IMAP, физические уровни трансляции и пр. Такое построение позволяет использовать в интерфейсе функционал нижних API для работы верхних.

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

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

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

Типы API

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

Выделяют глобальные продукты с отдельными языками программирования, предназначенные для решения локальных задач. Есть также продукты для управления различными графическими компонентами модулей программ (wxWidgets, Qt, GTK и т. д.), операционными системами (Amiga ROM Kernel, POSIX, Linux Kernel APIruen, Cocoa, OS/2 API, Windows API), звуковыми (DirectMusic/DirectSound, OpenAL), оконными интерфейсами и т. д. Именно графические API предназначены для улучшения яркости и чёткости изображений в компьютерных играх, разных приложениях с качественной визуализацией. Чем сложнее система интерфейса, тем больше вероятность возникновения технических сложностей при работе с приложением. Какие проблемы могут возникать:

  • сложности портирования кодов программ при изменении API в системе. Такие трудности могут возникать при переносе модулей в другую ОС;
  • сужение перечня функций продукта при применении в другом приложении (например, при переходе в систему с более высоким уровнем управления). Облегчаются типовые задачи определённого класса, но теряются некоторые возможности (доступ к контролю над другими регуляторами и пр.). То есть управление базовыми элементами становится более удобным и лёгким, но часть опций остается недоступной.

Кроме того, существует и политика выпуска API, которая определяет степень доступности технологии разным пользователям. Так, выделяют политики:

  • Private — API предназначен только для внутреннего использования;
  • «Партнёр» — это значит, что доступ к технологии предоставляется только отдельным деловым партнёрам;
  • Public — API является публичным и открытым всем.

API поисковых систем и веб-специалистов

Мастера, которые занимаются программированием и оформлением сайтов, а также их продвижением, используют специальный Web API. Это интерфейсы, которые включают комплект определённых HTTP-запросов. При получении такого рода запросов модуль генерирует HTTP-ответы определённой структуры. Чтобы передавать информацию, между ними применяются форматы XML или JSON. В этой сфере применения Web API является синонимом веб-службы, определёнными программами с соответствующими интерфейсами. Чтобы получить доступ к данным модулям, нужно пройти процедуру идентификации в Интернете по онлайн-адресу. То есть при необходимости передачи данных на сервер нужно использовать серверный модуль взаимодействия с API.

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

Одним из примеров API в интернет-рекламе является приложение, которое использует «Яндекс.Директ». Для настройки и более эффективного управления рекламными кампаниями создаются специальные модули, которые позволяют улучшить параметры поисковой оптимизации (SEO) путём информационного взаимодействия.

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

При подборе оптимального приложения веб-мастерам нужно учитывать изменения, которые наблюдаются после массового применения стандартов Web 2.0. Нововведения касались протоколов обмена структурированных данных в SOAP (распределение в вычислительной среде, касающееся доступа к объектам). Эти протоколы были приведены к упрощённому архитектурному стилю. Для интернет-магазинов и других онлайн-ресурсов с большим объёмом информации это дало возможность ускорить процессы выполнения заданных действий. Таким образом, разработчик при подборе приложения определяет, какой именно интерфейс необходимо применить для автоматизации всех основных процессов.

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

Другие термины на букву «A»

AdSenseAJAXAllSubmitterAltApache

Все термины SEO-Википедии

Теги термина

Веб-разработкаВнутренняя оптимизация

что это за технология, что такое программный интерфейс

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

Что значит API?

Этот термин расшифровывается как Application Programming Interface, что в переводе на русский значит «Программный Интерфейс Приложения». Аббревиатура API используется часто и на слуху у многих пользователей, взаимодействующих с компьютерами (даже далеких от программирования). Правда, популярность термина не сделала его особо понятнее. Для многих это все еще набор символов без четкого значения. В лучшем случае пользователи в ответ на вопрос «Что такое API» скажут, что это инструмент для взаимодействия нескольких программ, в худшем – не скажут ничего.

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

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

Главный принцип работы API. Почему его называют интерфейсом

Простыми словами, интерфейс – это «прослойка» между приложением А и приложением Б. В ней происходят процессы, которые позволяют двум программам обмениваться информацией и выполнять функции, связанные с обеими сторонами, скрывая «внутреннее строение» программ. Знакомо? Только что таким же образом мы описали API.

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

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

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Набор функций в программных интерфейсах приложения

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

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

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

Составление набора функций в API

Внутреннее устройство API зависит от того, каким образом его организует разработчик. Есть стандартные варианты, но они не являются «догматом».

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

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

Зачем нужен API?

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

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

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

Почему разработчики используют API?

Есть как минимум еще 4 причины, объясняющие интерес программистов к API:

  1. API упрощает и ускоряет создание новых продуктов. Разработчикам не приходится каждый раз изобретать велосипед. Можно взять API нейронной сети TenserFlow, к примеру, и внедрить в свое программное обеспечение, а не создавать собственную систему машинного обучения.
  2. Как я уже отметил выше, программный интерфейс увеличивает безопасность разработки. С помощью него можно вынести ряд функций в отдельное приложение, сделав невозможным их некорректное использование. От человеческого фактора это тоже спасает.
  3. API упрощает настройку связей между разными сервисами и программами. Интерфейс нивелирует необходимость в тесном сотрудничестве создателей различных приложений. Разработчики могут внедрять поддержку сторонних сервисов, вообще не контактируя с их создателями.
  4. Наличие готовых интерфейсов позволяет сэкономить не только время и силы программистов, но и финансы, с которыми часто связано создание новых программных решений.

Примеры API

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

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

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

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

Google Календарь

Те, кто использовал приложения-календари для iOS или Android, знают, что данные в них можно синхронизировать, подключив один из популярных сервисов: Apple iCal или Google Calendar. Обе компании предлагают разработчикам API, позволяющие подключить свой календарь напрямую к сторонним приложениям. Благодаря подобной интеграции люди могут использовать несколько разных программ со схожей функциональностью и иметь на руках актуальную информацию о всех своих делах.

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

Погодное приложение

Существующие погодные приложения (встроенные в операционную систему или сторонние из App Store или Google Play) получают информацию о погоде из сторонних источников.

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

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

Сервис по заказу авиабилетов

Здесь аналогичная ситуация. Помимо сайтов и приложений, принадлежащих авиакомпаниям, есть так называемые агрегаторы. У нас популярен Aviasales, но есть и другие.

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

Кнопки авторизации

Наверняка вы видели на различных сайтах кнопки, позволяющие зарегистрироваться с помощью уже существующих аккаунтов на популярных площадках. Сейчас такие есть у Google, Facebook, Apple, Twitter, ВКонтакте и т.д. Набор доступных опций на конкретном ресурсе полностью зависит от его хозяев. Это тоже делается через API. Условная Apple создала набор защищенных функций, который можно с минимальными затратами подключить к своему проекту и предоставить пользователям доступ к удобному и безопасному способу авторизации.

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

Навигация на сайтах и в приложениях

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

То же самое делают разработчики многих приложений под Android. Так как это API, встроенный в операционную систему, подключить карты Google к своему сервису доставки еды или приложению для бегунов проще всего. На iOS ситуация иная – там проще работать с Apple Maps.

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

Как вызвать API?

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

Это может выглядеть так, например:


// Подключаем API
import SomeKindOfAPI
// Задействуем его на той или иной информации
let a = SomeKindOfAPI(SomeData)
// Возвращаем получившееся значение
return a

А вот как выглядит запрос к API Yandex.SpeechKit (для озвучки текста):


import requests
import json

// Указываем адрес API для подключения в соответствующую переменную:
API_URL = `https://adresAPIotYandex.net/speech/tts.synthesize`
// Затем передаем по ссылке данные через словарь Info со всеми необходимыми параметрами:
info = { text: ‘Добрый день, тестируем синтезатор речи Яндекса’, lang: ‘ru-RU’ speed: 2, voice: ‘filipp’ emotion: ‘good’ }
//Конвертируем передаваемую информацию в формат JSON:
json_str = json.dumps(info)
//Передаем сформированный запрос на сервер Яндекса, чтобы тот провел синтез речи и забираем ответ:
answer = request. post(API_URL, json_str)

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

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

Но не только разработчики участвуют во взаимодействии с API. Пользователи тоже зачастую обращаются к интерфейсам. Банальная кнопка «Создать новую вкладку» в браузере – уже интерфейс (конкретно в этом случае – графический интерфейс). За ним так же скрывается набор функций, выполнение которых в конечном итоге приводит к появлению новой страницы в браузере.

Таких примеров масса. Можно брать в расчет любую возможность компьютера, которая непонятна обывателю. Вся эта «магия под капотом» как раз и есть API, с которыми на постоянной основе контактируют люди, далекие от программирования.

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

В развитии программных интерфейсов наблюдаются следующие тенденции:

  1. Современные API пытаются прийти к общему знаменателю в вопросе форматов. Сейчас чаще всего используются запросы типа HTTP и REST. Разработчики пытаются использовать наиболее доступные способы взаимодействия, которые сможет понять и быстро приспособить большинство программистов.
  2. Сейчас API все чаще рассматривают не как набор строк кода, а как отдельный продукт (спасибо инкапусуляции). Продукт, направленный на особую аудиторию, на разработчиков. Поэтому из разряда инструментов с вечно меняющимся циклом разработки API перерос в подобие программ с предсказуемым выпуском новых версий и длительным сроком поддержки.
  3. Благодаря попыткам крупных корпораций и отдельных программистов привести программные интерфейсы к порядку, заметно выросло их качество. «Мосты» между отдельными приложениями стали значительно надежнее и проще. Отношение к безопасности функций стало основным приоритетом.
  4. К созданию программных интерфейсов подходят как к созданию приложений. Их жизненный цикл включает в себя продумывание идеи, тестирование, разработку, работу менеджеров и контроль версий. Документации также начали делать гораздо понятнее для разработчиков.

Вместо заключения

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

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

Что такое API?

Введите ключевые слова

Поддержка
Приставка
Начать пробную версию

Контакт

Выберите язык
简体中文EnglishFrançaisDeutschItaliano日本語한국어PortuguêsEspañol

Связаться с нами

Выберите язык

  • 简体 中文
  • Английский
  • Français
  • Deutsch
  • ИТАЛАНАО
  • 日本語
  • 한국어
  • Portugus
  • Español
  • Español
  • 0012

Добро пожаловать,

Войдите в свою учетную запись Red Hat

Войдите в систему

Ваша учетная запись Red Hat дает вам доступ к вашему профилю участника и предпочтениям, а также к следующим услугам в зависимости от вашего статуса клиента:

Зарегистрируйтесь сейчас

Еще не зарегистрированы? Вот несколько причин, по которым вы должны это сделать:

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

Изменить свой профиль и настройки

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

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

Выход из системы

Логин аккаунта

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

API-интерфейсы

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

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

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

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

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

В качестве альтернативы распространитель книг может предоставить API для проверки наличия товаров на складе. У этого подхода есть несколько преимуществ:

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

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

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

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

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

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

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

Предоставление ваших API партнерам или общественности может:

  • Создать новые каналы дохода или расширить существующие.

  • Расширьте охват вашего бренда.

  • Содействие открытым инновациям или повышению эффективности за счет внешних разработок и сотрудничества.

Звучит здорово, правда? Но как API могут делать все это?

Вернемся к примеру с компанией по распространению книг.

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

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

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

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

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

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

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

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

Еще одна спецификация — передача репрезентативного состояния (REST). Веб-API, которые придерживаются архитектурных ограничений REST, называются RESTful API. REST принципиально отличается от SOAP: SOAP — это протокол, тогда как REST — это архитектурный стиль. Это означает, что официального стандарта для веб-API RESTful не существует. Как определено в диссертации Роя Филдинга «Архитектурные стили и проектирование сетевых архитектур программного обеспечения», API-интерфейсы являются RESTful, если они соответствуют 6 основным ограничениям RESTful-системы:

  • Архитектура клиент-сервер : Архитектура REST состоит из клиентов, серверов и ресурсов и обрабатывает запросы через HTTP.

  • Отсутствие состояния : между запросами на сервере не сохраняется содержимое клиента. Вместо этого информация о состоянии сеанса хранится у клиента.

  • Возможность кэширования : Кэширование может устранить необходимость в некоторых взаимодействиях клиент-сервер.

  • Многоуровневая система : Взаимодействие клиент-сервер может быть опосредовано дополнительными уровнями. Эти уровни могут предлагать дополнительные функции, такие как балансировка нагрузки, общий кэш или безопасность.

  • Код по запросу (необязательно) : Серверы могут расширять функциональные возможности клиента путем передачи исполняемого кода.

  • Единый интерфейс : Это ограничение является ключевым для разработки RESTful API и включает 4 аспекта:

    • Идентификация ресурсов в запросах : Ресурсы идентифицируются в запросах и отделены от представлений, возвращаемых клиенту.

    • Управление ресурсами через представления : Клиенты получают файлы, представляющие ресурсы. Эти представления должны содержать достаточно информации, чтобы их можно было модифицировать или удалить.

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

    • Гипермедиа как механизм состояния приложения : После доступа к ресурсу клиент REST должен иметь возможность обнаруживать через гиперссылки все другие доступные действия.

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

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

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

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

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

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

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

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

Страница не найдена 404

Перейти к содержимому

Введите ключевые слова

Поддержка
Приставка
Начать пробную версию

Контакт

Выберите язык
简体中文EnglishFrançaisDeutschItaliano日本語한국어PortuguêsEspañol

Связаться с нами

Выберите язык.0012

  • Португальский
  • Испанский
  • Добро пожаловать,

    Войдите в свою учетную запись Red Hat

    Войдите в систему

    Ваша учетная запись Red Hat дает вам доступ к вашему профилю участника и предпочтениям, а также к следующим услугам в зависимости от вашего статуса клиента:

    Зарегистрируйтесь сейчас

    Еще не зарегистрированы? Вот несколько причин, по которым вы должны это сделать:

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

    Изменить свой профиль и настройки

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

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

    Выход из системы

    Логин аккаунта

    Выберите язык

    • 简体 中文
    • Английский
    • Français
    • Deutsch
    • ИТАЛАНАО
    • 日本語
    • 한국어
    • PortuguêS
    • ESPAYOL
    • PortuguS
    • Red Hat ® Enterprise Linux ® — это основа для приложений, которые управляют вашим бизнесом — в физических, виртуальных, контейнерных, частных и общедоступных облаках.

      Red Hat OpenShift ® — это контейнерная платформа приложений с технологиями Docker и Kubernetes корпоративного уровня.

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

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

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

      Всеобъемлющие учебные курсы и экзамены Red Hat ориентированы на реальные рабочие роли и задачи. Узнайте, как вы можете извлечь выгоду.

      LinkedInYouTubeFacebookTwitter

      Продукты

      • Red Hat Enterprise Linux
      • Red Hat OpenShift
      • Платформа автоматизации Red Hat Ansible
      • Облачные сервисы
      • Посмотреть все продукты

      Инструменты

      • Моя учетная запись
      • Обучение и сертификация
      • Служба поддержки клиентов
      • Ресурсы для разработчиков
      • Учебное сообщество
      • Партнерские ресурсы
      • Библиотека ресурсов

      Попробуйте, купите и продайте

      • Пробный центр
      • Торговая площадка Red Hat
      • Экосистемный каталог Red Hat
      • Магазин красных шляп
      • Купить онлайн (Япония)
      • Консоль

      Связь

      • Контактная консультация
      • Связаться с отделом продаж
      • Контактное обучение
      • Социальный

      О Red Hat

      Мы являемся ведущим в мире поставщиком корпоративных решений с открытым исходным кодом, включая Linux, облачные решения, контейнеры и Kubernetes.

      This entry was posted in Популярное