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

Какие форматы используются для передачи данных в api

  • автор:

Какой формат запроса API?

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

  • Формат запроса URI
  • Методы запроса
  • Заголовок запроса

Формат запроса URI

Используется формат запроса URI:

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

  • URI-scheme — протокол для передачи запросов. Все API-интерфейсы используют HTTPS.
  • Endpoint — доменное имя или IP-адрес сервера, на котором находится служба REST. Endpoint варьируется в зависимости от служб в разных регионах. По умолчанию следует использовать регион ru-moscow-1 для iam.ru-moscow-1.hc.sbercloud.ru .
  • resource-path — путь доступа по API для выполнения указанной операции. Получите путь из URI API. Например, путь к ресурсу API, используемого для получения пользовательского токена будет выглядеть так: /v3/auth/tokens .
  • query-string — необязательный параметр. Убедитесь, что перед каждым запросом, имеющим формат «Parameter name=Parameter value», стоит знак вопроса (?). Например, «?limit=10» указывает, что будет отображено не более 10 записей данных.

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

Методы запроса

Следующие методы запроса по протоколу HTTP используются для отправки запроса на сервер:

Например, для метода POST запрос может выглядеть следующим образом:

POST https://iam.ru-moscow-1.hc.sbercloud.ru/v3/auth/tokens 

Заголовок запроса

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

В таблице показаны популярные заголовки запросов:

Обязательно или нет

Указывает доменное имя сервера и номер порта запрашиваемых ресурсов. Значение может быть получено из URL-адреса API-интерфейса сервиса. Значение задается в формате «Имя хоста:Номер порта». Если номер порта не указан, используется порт по умолчанию. Номер порта по умолчанию для https — «443».

Это поле является обязательным для аутентификации по AK/SK.

code.test.com или code.test.com:443

Задает тип (или формат) тела сообщения. Рекомендуется использовать значение по умолчанию application/json .

Задает длину тела запроса. Единица измерения — байт.

ID проекта. Для его получения следуйте шагам в инструкции Obtaining the Account ID, Project ID, Log Group ID, and Log Stream ID (en).

Это ответ на API для получения пользовательского токена. Этот API не требует аутентификации.

После обработки запроса значение X-Subject-Token в заголовке ответа является значением токена.

Не обязательно. Обязательно только аутентификации токена.

MIIPAgYJKoZIhvcNAQcCo…ggg1BBIINPXsidG9rZ (токен для примера)

Какие форматы используются для передачи данных в api

Systems  •  Education

Systems  •  Education

+7 499 350 77 10
+7 499 322 88 70

  • Переподготовка
  • Системный анализ
  • Архитектура
  • Интеграция
  • Базы данных
  • Бизнес-анализ
  • Продуктовый дизайн

Глава 3: Форматы данных
Брайан Кукси — опубликовано 22 апреля 2014

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

Представление данных

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

Хорошо продуманный формат помогает целевой аудитории понимать информацию.

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

Наиболее распространёнными форматами, встречающимися в современных API, являются JSON (JavaScript Object Notation, нотация объектов JavaScript) и XML (Extensible Markup Language, расширяемый язык разметки) .

JSON

Многие новые API-интерфейсы приняли JSON в качестве формата, потому что он построен на популярном языке программирования Javascript, который повсеместно используется в интернете и применим как на фронте, так и на бэкенде веб-приложения или сервиса. JSON — это очень простой формат, состоящий из двух частей: ключей (keys) и значений (values). Ключи представляют собой свойство, атрибут описываемого объекта. Заказ пиццы может быть объектом. У него есть атрибуты (ключи), такие как тип корочки, начинка и статус заказа. У этих атрибутов есть соответствующие значения (толстое тесто, пепперони и «доставляется»).

Посмотрим, как этот заказ пиццы может выглядеть в JSON:

В приведенном выше примере JSON ключевыми словами являются слова слева: начинка, корочка и статус. Они говорят нам, какие атрибуты содержит заказ пиццы. Значения указаны в частях справа. Это фактические детали заказа.

Рисунок 1. Ключ и значение JSON

Если вы прочитаете строку слева направо, вы получите довольно естественное английское предложение. Взяв, к примеру, первую строчку, мы могли бы прочитать её как «корочка для этой пиццы оригинального стиля». Вторая строка также может быть прочитана — в JSON значение, которое начинается и заканчивается квадратными скобками ([]), представляет собой список значений. Итак, мы читаем вторую строку заказа как «начинки для этого заказа: сыр, пепперони и чеснок».

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

В этой обновленной версии мы видим, что добавлен новый ключ «клиент». Значение этого ключа — это еще один набор ключей и значений, которые предоставляют подробную информацию о клиенте, разместившем заказ. Классный трюк, а?! Это называется Ассоциативным Массивом. Но не пугайтесь технического языка, ведь ассоциативный массив — это просто вложенный объект.

XML

XML существует с 1996 года. С возрастом он стал очень зрелым и мощным форматом данных. Как и JSON, XML предоставляет несколько простых строительных блоков, которые создатели API используют для структурирования своих данных. Основной блок называется
узлом (node).

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

  original cheese pepperoni garlic  cooking  

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

Рисунок 2. Узел и значение в XML

Вы также можете вывести предложения на английском языке, читая XML. Глядя на строчку с «корочкой», мы могли прочитать «корочка для пиццы оригинального стиля». Обратите внимание, как в XML каждый элемент в списке начинок обернут узлом. Как видите, формат XML требует гораздо больше текста для передачи, чем JSON.

Как форматы данных используются в HTTP

Теперь, когда мы изучили некоторые доступные форматы данных, нам нужно знать, как использовать их в HTTP. Для этого мы ещё раз поприветствуем одну из основ HTTP: заголовки. В главе 2 мы узнали, что заголовки — это список информации о запросе или ответе. Есть заголовок, указывающий, в каком формате находятся данные: Content-Type .

Когда клиент отправляет заголовок Content-Type в запросе, он сообщает серверу, что данные в теле запроса отформатированы
определённым способом. Если клиент хочет отправить серверу данные в формате JSON, он установит Content-Type на «application/json». Получив запрос и увидев этот Content-Type, сервер сначала проверит, понимает ли он этот формат, и, если да, он будет знать, как читать данные. Аналогичным образом, когда сервер отправляет клиенту ответ, он также устанавливает Content-Type, чтобы сообщить клиенту, как читать тело ответа.

Иногда клиент может общаться только в одном формате данных. Если сервер отправляет обратно что-либо, кроме этого формата, клиент откажется и выдаст ошибку. К счастью, на помощь приходит второй HTTP-заголовок. Клиент может установить заголовок Accept, чтобы сообщить серверу, какие форматы данных он может принимать. Если клиент может общаться только в формате JSON, он может установить для заголовка Accept значение «application/json». И тогда сервер будет отправлять ответы в формате JSON. Если сервер не поддерживает формат, запрашиваемый клиентом, он может отправить клиенту сообщение об ошибке, чтобы сообщить ему, что запрос не будет работать.

С помощью этих двух заголовков, Content-Type и Accept, клиент и сервер могут работать с форматами данных, которые они понимают и должны работать должным образом.

Рисунок 3. Заголовки форматов данных
Краткое содержание главы 3

В этой главе мы узнали, что для того, чтобы два компьютера могли общаться, они должны понимать передаваемый им формат данных. Мы познакомились с двумя распространенными форматами данных, используемыми в API: JSON и XML. Мы также узнали, что HTTP-заголовок Content-Type — это полезный способ указать, какой формат данных отправляется в запросе, а заголовок Accept определяет запрошенный формат для ответа.

  • JSON: нотация объектов JavaScript
  • Объект: вещь или существительное (человек, заказ пиццы . )
  • Ключ: атрибут объекта (цвет, начинка . )
  • Значение: значение атрибута (синий, пепперони . )
  • Ассоциативный массив: вложенный объект
  • XML: расширяемый язык разметки

Экскурс в REST API и знакомство с Postman
как инструментом для вызова REST API-методов

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

Что такое REST?

  1. Client-Server. Система должна быть разделена на клиентов и серверов.
  2. Stateless. Сервер не должен хранить какой-либо информации о клиентах. В запросе должна храниться вся необходимая информация для обработки запроса и, если необходимо, идентификации клиента.
  3. Cache․ Клиенты и промежуточные узлы могут кешировать ответы сервера.
  4. Uniform Interface. Единый интерфейс определяет взаимодействие между клиентами и серверами.
  5. Layered System. Допускается разделить систему на иерархию слоев, но с условием, что каждый компонент может видеть компоненты только непосредственно следующего слоя.
  6. Code-On-Demand (опционально). Возможно выполнение кода на стороне клиента.

Таким образом, REST — способ организации программной системы, построенный на вышеуказанных принципах. Приложения, которые полностью придерживаются этих принципов, называются RESTful. Для приложений, которые частично учитывают принципы REST, используют термин REST-like.

Преимущества приложения,
разработанного на основании REST

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

  1. Надёжность. Обеспечивается за счёт отсутствия необходимости сохранять информацию о состоянии клиента, которая может быть утеряна.
  2. Производительность. Достигается за счёт использования кеша.
  3. Масштабируемость. Важна для обеспечения большого числа компонентов в системе и взаимодействий между ними.
  4. Прозрачность взаимодействия между системами по сети.
  5. Простота интерфейсов.
  6. Портативность компонентов. Другими словами, переносимость компонентов системы путем перемещения программного кода вместе с данными.
  7. Легкость внесения изменений. Можно легко вносить изменения в существующий компонент системы, если он слабо связан с другими компонентами.
  8. Способность эволюционировать, приспосабливаясь к новым требованиям.

Воркшоп Татьяны Сальниковой

«Проектирование интеграции с REST API»

  • познакомиться с REST API,
  • спроектировать интеграцию «с нуля»,
  • систематизировать знания и навыки в REST-интеграциях.
Посмотреть программу воркшопа

Трёхуровневая архитектура

Трёхуровневая архитектура предполагает, что инициатором запроса является так называемый «клиент», то есть клиентское приложение. Уровни архитектуры мы далее будем называть «слои» — это общепринятый в ИТ-среде термин.

  1. Слой клиента (интерфейс пользователя) — необходим для того, чтобы разные клиенты могли единообразно обращаться к бизнес-логике, реализованной на сервере.
  2. Слой логики (сервер) — обеспечивает выполнение бизнес-логики.
  3. Слой данных (база данных) — обеспечивает хранение данных. Сервер получает данные и использует их для осуществления бизнес-логики.

Трёхуровневая архитектура
Application programming interface (API)

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

Поговорим теперь подробнее о том, как получить все преимущества приложения, разработанного на основании REST.

Для этого рассмотрим следующую схему:

Способы взаимодействия компьютерных программ

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

Слева — различные клиенты, которые хотят добраться до бизнес-логики, реализованной на сервере. Как сделать так, чтобы обращение к бизнес-логике было единообразным для всех клиентов? Для решения данной задачи и существует программный интерфейс (на схеме это REST API).

Таким образом, API (Application programming interface) — это описание способов, с помощью которых одна компьютерная программа может взаимодействовать с другой.

  • Операцию, которую мы можем выполнить;
  • Данные, которые поступают на вход;
  • Данные на выходе (данные или сообщение об ошибке).

Вызов операций REST API

Клиентские приложения обращаются к REST API по протоколу HTTP. Другими словами это называется отправляют «HTTP-request». В рамках данной статьи мы будем обращаться к REST API стороннего приложения с помощью программы Postman. Прежде, чем мы приступим непосредственно к практической части статьи, давайте проговорим термины, необходимые для понимания сути происходящего.

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

Давайте рассмотрим структуру HTTP-запроса, поскольку для обращения к стороннему приложению мы должны сделать как раз это — отправить http-request. Любой HTTP-запрос состоит из трёх частей:

  1. Стартовая строка

Приведу несколько примеров:

Что такое API

Что такое API

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

Что значит API?

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

Application Programming Interface

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

Карты API

То же самое делают разработчики многих приложений под 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, определенно стоит углубиться в эту тему и чаще их использовать, чтобы уметь быстро подключать сторонние решения в своих сервисах и уметь создавать качественные программные интерфейсы для уже существующих продуктов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *