Application programming interface (api)

Дизайн в три колонки

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

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

Многие API смоделировали свой дизайн после Stripe. Например, Slate, Spectacle или Readme.io. Следует ли использовать Дизайн в три колонки с документацией по API? Может быть.

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

MYOB Developer Center использует интересный подход к документированию JSON в своих API. Они перечисляют структуру JSON в виде таблицы, с разными уровнями отступов. Можно навести курсор мыши на поле с для появления всплывающей подсказки с описанием или щелкнуть по полю, чтобы раскрыть описание ниже. Использование всплывающих подсказок позволяет идеально выровнять строки, содержащие пример и описание.

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

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

Теперь, когда мы установили, что API — это набор процедур, которые указывают программное обеспечение в правильном направлении, как именно это все работает?

Лучший способ объяснить основные функциональные возможности API — это привести пример из реальной жизни. Службы доставки еды, такие как GrubHub , сейчас невероятно популярны, поэтому давайте обсудим, как может работать код таких мобильных приложений.

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

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

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

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

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

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

Что такое API?

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

  • API браузера встроены в веб-браузер и способны использовать данные браузера и компьютерной среды для осуществления более сложных действий с этими данными. К примеру, API Геолокации (Geolocation API) предоставляет простые в использовании конструкции JavaScript для работы с данными местоположения, так что вы сможете, допустим, отметить своё расположение на карте Google Map. На самом деле, в браузере выполняется сложный низкоуровневый код (например, на C++) для подключения к устройству GPS (или любому другому устройству геолокации), получения данных и передачи их браузеру для обработки вашей программой, но, как было сказано выше, эти детали скрыты благодаря API.
  • Сторонние API не встроены в браузер по умолчанию. Такие API и информацию о них обычно необходимо искать в интернете. Например, Twitter API позволяет размещать последние твиты (tweets) на вашем веб-сайте. В данном API определён набор конструкций, осуществляющих запросы к сервисам Twitter и возвращающих определённые данные.

Итак, выше мы поговорили о том, что такое JavaScript API клиентской части и как они связаны с языком JavaScript. Давайте теперь тезисно запишем основные понятия и определим назначение других инструментов JavaScript:

  • JavaScript — Язык программирования сценариев высокого уровня, встроенный в браузер, позволяющий создавать функциональность веб-страниц/приложений. Отметим, что JavaScript также доступен на других программных платформах, таких как Node. Но пока не будем останавливаться на этом.
  • API браузера (Browser APIs) — конструкции, встроенные в браузер, построенные на основе языка JavaScript, предназначенные для облегчения разработки функциональности.
  • Сторонние API (Third party APIs) — конструкции, встроенные в сторонние платформы (такие как Twitter, Facebook) позволяющие вам использовать часть функциональности этих платформ в своих собственных веб-страницах/приложениях (например, показывать последние Твиты на вашей странице).
  • Библиотеки JavaScript — Обычно один или несколько файлов, содержащих . Такие файлы можно прикрепить к веб-странице, чтобы ускорить или предоставить инструменты для написания общего функциональности. Примеры: jQuery, Mootools и React.
  • JavaScript фреймворки (frameworks) — Следующий шаг в развитии разработки после библиотек. Фреймворки JavaScript (такие как Angular и Ember) стремятся к тому, чтобы быть набором HTML, CSS, JavaScript и других технологий, после установки которого можно «писать» веб-приложение с нуля. Главное различие между фреймворками и библиотеками — «Обратное направление управления» ( “Inversion of Control” ). Вызов метода из библиотеки происходит по требованию разработчика. При использовании фреймворка — наоборот, фреймворк производит вызов кода разработчика.

Популярные API

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

  • Facebook API позволяет логиниться на сторонних платформах с помощью своего аккаунта, оплачивать покупки в приложении, получать доступ к данным крупных и средних аккаунтов Instagram Business, управлять страницами сообществ и публиковать на них контент, получать статистику по рекламе, управлять объявлениями и аудиторией, запускать прямые эфиры,
  • С помощью Twitter API можно показывать ленту твитов на сайте, управлять профилем и настройками учетной записи, автоматически создавать рекламные кампании в Твиттере и управлять ими,
  • API ВКонтакте дает возможность отслеживать активность пользователей в сообществах, создавать ботов, собирать статистику по действиям в сообществе, автоматически модерировать контент, автоматизировать работу с товарами (например, импорт из внешней базы), получать текстовые публикации из ВКонтакте по заданным ключевым словам и т.д.,
  • Telegram Bot API представляет собой HTTP-интерфейс для работы с ботами в Telegram,
  • YouTube API позволяет встраивать видео на сайт, создавать плейлисты, встраивать плеер в приложение, получать данные об активности пользователей.

Не менее популярны и следующие API:

Яндекс API – у всех популярных сервисов Яндекса есть свои API (Вебмастер, Метрика, Директ, Маркет, Аудитории, Карты и т.д.), благодаря которым можно:

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

Google API

  • Работа с устройствами и приложениями на платформе Android,
  • Управление событиями в Календаре,
  • Управление товарами и акккаунтом в Google Покупках,
  • Управление файлами на Google Диске, включая загрузку, скачивание, поиск, изменение прав доступа,
  • Просмотр и управление данными Google Analytics,
  • Чтение и редактирование файлов в Документах,

Возможности API MCN Telecom

Возможности API MCN Telecom, в частности, включают:

Управление функциями ВАТС и телефонии через API (и в т. ч. с использованием WebHooks) может включать такие действия, как:

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

и многое другое.

Интеграция ВАТС с CRM позволяет:

  • поднимать карточку звонящего клиента при входящем звонке;
  • совершать исходящие вызовы из CRM;
  • прикреплять записи разговоров к карточкам клиентов в CRM-системе;
  • построить воронку продаж, проанализировав в едином приложении данные по звонкам и продажам;
  • автоматически направлять звонки клиентов на персонального менеджера с поднятием карточки в CRM;
  • синхронизировать телефонный справочник сотрудников компании с внутренними номерами в виртуальной АТС и CRM-системе.

Как воспользоваться API MCN Telecom

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

Чтобы воспользоваться API, нужно произвести настройки в Личном кабинете в разделе API, а также во внешней системе (использующей API MCN Telecom).

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

Документация API с подробным описанием методов доступна в Личном кабинете.

Избегайте частичных обновлений

Плохо:

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

Во-первых, экономия объёма ответа в современных условиях требуется редко. Максимальные размеры сетевых пакетов (MTU, Maximum Transmission Unit) в настоящее время составляют более килобайта; пытаться экономить на размере ответа, пока он не превышает килобайт — попросту бессмысленная трата времени.

Перерасход трафика возникает, если:

  • не предусмотрен постраничный перебор данных;

  • не предусмотрены ограничения на размер значений полей;

  • передаются бинарные данные (графика, аудио, видео и т.д.).

Во всех трёх случаях передача части полей в лучше случае замаскирует проблему, но не решит. Более оправдан следующий подход:

  • для «тяжёлых» данных сделать отдельные эндпойнты;

  • ввести пагинацию и лимитирование значений полей;

  • на всём остальном не пытаться экономить.

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

В-третьих, этот подход может как-то работать при необходимость перезаписать поле. Но что делать, если поле требуется сбросить к значению по умолчанию? Например, как удалить ?

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

Хорошо: можно применить одну из двух стратегий.

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

Теперь для удаления достаточно не передавать его в . Этот подход также позволяет отделить неизменяемые и вычисляемые поля ( и ) от изменяемых, не создавая двусмысленных ситуаций (что произойдёт, если клиент попытается изменить ?). В этом подходе также можно в ответах операций возвращать объект заказа целиком (однако следует использовать какую-то конвенцию именования).

Вариант 2: разработать формат описания атомарных изменений.

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

Инструменты для работы

  • Текстовый редактор (Atom или Sublime text);
  • браузер Chrome с его встроенной консолью Javascript, которая хорошо подходит для проверки JSON. Firefox тоже подойдет;
  • Postman — приложение, которое позволяет вам делать запросы и видеть ответы через GUI-клиент;
  • curl необходим для выполнения запросов к конечным точкам из командной строки. На компьютерах Mac уже установлен curl. Пользователи Windows должны следовать инструкциям по установке curl здесь. (Примечание: выбирайте одну из «бесплатных» версий для установки curl.);
  • Git — инструмент контроля версий, который разработчики часто используют для совместной работы над кодом. Для Windows здесь описана установка и настройки Git и эмулятора терминала Git BASH. Для Mac смотрите Загрузка Git, можно рассмотреть возможность установки iTerm2;
  • аккаунт на GitHub будет использоваться для различных действий, иногда для демонстрации рабочего процесса Git, а иногда в качестве службы аутентификации для инструментов разработчика. Если еще нет учетной записи GitHub, самое время ее создать;
  • аккаунт StopLight, сервиса, который предоставляет инструменты визуального моделирования для работы со спецификацией OpenAPI. Создать учетную запись Stoplight можно, используя свои учетные данные GitHub;
  • ключ к API OpenWeatherMap. Мы будем использовать API OpenWeatherMap для некоторых упражнений. Для активации ключа API OpenWeatherMap требуется несколько часов, поэтому лучше получить ключ API заранее — тогда, когда вы приступите к действиям API OpenWeatherMap, все будет готово. Чтобы получить свой (бесплатный) ключ API OpenWeatherMap, перейдите по адресу https://openweathermap.org/. Нажмите Зарегистрироваться в верхней панели навигации и создайте учетную запись. После того, как вы зарегистрируетесь, войдите в систему и найдите ключ API по умолчанию на панели инструментов разработчика. Он находится на вкладке API Keys. Скопируйте ключ в то место, где его легко найти.

API — что это такое, зачем они нужны и что умеют?

По сути, если бы не было API, не было бы Windows, поскольку всё это множество программ взаимодействует между собой, использует ресурсы операционной системы и «железа», именно с помощью API.

 API выполняет связующую функцию

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

API-интерфейсы экономят время программистов

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

API позволяют обеспечить обмен информацией

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

Крупные издания, к примеру, The New York Times, именно с помощью API предоставляют доступ  к своей базе данных, в которой хранится не одна тысяча статей.

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

API используются для контроля доступа к программным и аппаратным ресурсам

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

API позволяют поддерживать сотрудничество

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

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

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

Использование реалистичных значений в примере ответа

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

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

Стратегии документирования вложенных объектов

Часто бывает, ответ содержит вложенные объекты (объекты внутри объектов) или повторяющиеся элементы. Форматирование документации для схемы ответа является одним из наиболее сложных аспектов справочной документации API.

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

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

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

Другие API будут вкладывать определения ответов для имитации структуры JSON. Вот пример из bit.ly API:

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

Подход eBay еще уникальнее. В их случае вложен в , который вложен в , который вложен в

(Обратите внимание, что этот ответ находится в формате XML вместо JSON.):

Вот документация ответа:

Также интересно, сколько деталей eBay включает для каждого элемента. В то время как авторы Twitter, опускают описания, авторы eBay пишут небольшие романы, описывающие каждый элемент в ответе.

API для дизельных двигателей двигателей

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

Наименование стандарта Статус Год выпуска Ссылка
CA

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

Устаревший стандарт 1950 Подробнее
CB

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

Устаревший стандарт 1959 Подробнее
CC

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

Устаревший стандарт 1961 Подробнее
CD

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

Устаревший стандарт 1990 Подробнее
CD-II

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

Устаревший стандарт 1990 Подробнее
CE

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

Устаревший стандарт 1990 Подробнее
CF

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

Устаревший стандарт 1990 Подробнее
CF-2

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

Устаревший стандарт 1994 Подробнее
CF-4

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

Устаревший стандарт 1994 Подробнее
CG-4

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

Устаревший стандарт 1994 Подробнее
CH-4

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

Действующий стандарт 1998 Подробнее
CI-4

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

Действующий стандарт 2002 Подробнее
CI-4 PLUS

Полную информацию о стандарте CI-4 PLUS API вы можете получить, нажав на ссылку подробнее.

Действующий стандарт 2002 Подробнее
CJ-4

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

Действующий стандарт 2010 Подробнее
CK-4

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

Действующий стандарт 2017 Подробнее
FA-4

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

Действующий стандарт 2017 Подробнее

Типы API

Существует четыре основных типа API-интерфейсов: частные, общедоступные, партнерские и составные.

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

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

  • Локальные API предлагают сервисы ОС или промежуточного программного обеспечения для прикладных программ. API Microsoft .NET, TAPI (Telephony API) для голосовых приложений и API доступа к базе данных являются примерами локальной формы API.
  • Веб-API предназначены для представления широко используемых ресурсов, таких как HTML-страницы, и доступ к ним осуществляется с помощью простого протокола HTTP. Любой веб-URL активирует веб-API. Веб-API часто называют RESTful, потому что издатель интерфейсов REST не сохраняет никаких данных внутри между запросами. Таким образом, запросы от многих пользователей могут смешиваться, как если бы они были в Интернете.
  • Программные API основаны на технологии удаленного вызова процедур (RPC), которая заставляет удаленный программный компонент казаться локальным для остальной части программного обеспечения. API-интерфейсы сервис-ориентированной архитектуры (SOA), такие как API-интерфейсы Microsoft WS, являются программными API-интерфейсами.

Типы

Api различаются по виду предоставления доступа:

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

Так же существуют следующие три вида web api, необходимые для разработки http-служб:

  • RPC (Remote Procedure Call), который использовали раньше, когда все компьютерные системы были связаны между собой исключительно по локальной связи. Процесс вызова удаленных систем сильно напоминал вызов функций в утилитах. Как примеры этой системы можно вспомнить CORBA и DCOM;
  • SOAP (Simple Object Access Protocol) отлично взаимодействует с протоколами прикладного уровня и позволяет обмениваться сообщениями в распределительной вычислительной среде. Умеет не только удаленно вызывать необходимые процедуры, но и рассылать и принимать сообщения в формате XML;
  • REST (Representational State Transfer) был создан как архитектура программного обеспечения для веб-служб. Он работает с самими разными форматами: с сайтами, с flash-программами и так далее. Api требует значительно меньше вычислительных ресурсов, так все данные отправляются без дополнительных слоев, следовательно, все передачи тратят значительно меньше ресурсов.

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

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

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

Что будет, если API отключится или поменяются условия

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

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

Потом всё поменялось: Гугл изменили правила использования своего API для карт, и теперь есть ограничения на количество показов и запросов к сервису. Теперь бесплатно можно запросить карты только 28 000 раз. Это значит, что если у вас есть сайт с картой, которую вы загружаете по API, то первые 28 000 посетителей сайта увидят это бесплатно, а за каждый новый показ вам, как владельцу сайта, придётся заплатить.

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

Что такое API

В общем, API (Application Programming Interface) обеспечивает взаимодействие между двумя системами. Это как винтик, связывающий две детали, или как шестеренка, при помощи которой приводятся в движение две соседние шестеренки (как на картинке ниже).

API — как шестеренка, приводящая в движение две соседние шестеренки

Картинка взята с ресурса Brent 2.0, spinning gears, CC BY-ND 2.0

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

Когда нажимаем кнопки, скрытые функции взаимодействуют с другими компонентами и выдают информацию

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

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

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

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

Adblock
detector