Веб-API
— Веб-API это интерфейс прикладного программирования (API) для веб-сервера или веб-браузера . Как концепция веб-разработки , она может быть связана с веб-приложения ( клиентской частью включая любые веб-фреймворки используемые ). Серверный , веб-API состоит из одной или нескольких общедоступных конечных точек для определенной системы сообщений запрос-ответ обычно выраженной в формате JSON или XML с помощью HTTP на основе веб-сервера . Серверный API (SAPI) не считается серверным веб-API, если только он не доступен публично удаленному веб-приложению.
Клиентская часть
[ редактировать ]Клиентский веб - API — это программный интерфейс для расширения функциональности веб-браузера или другого HTTP-клиента. Первоначально они чаще всего представляли собой встроенные расширения браузера, однако большинство новых из них ориентированы на стандартизированные привязки JavaScript .
Фонд Mozilla Foundation создал спецификацию WebAPI, призванную помочь заменить собственные мобильные приложения приложениями HTML5 . [1] [2]
Google создал свою архитектуру Native Client , которая призвана помочь заменить небезопасные собственные плагины безопасными расширениями и приложениями, изолированными в песочнице . Они также сделали это портативным, используя модифицированный компилятор LLVM AOT .
Серверная часть
[ редактировать ]Серверный веб - API состоит из одной или нескольких общедоступных конечных точек для определенной системы сообщений запрос-ответ , обычно выраженной в JSON или XML . Веб-API чаще всего предоставляется посредством HTTP на базе веб-сервера .
Мэшапы — это веб-приложения , которые сочетают использование нескольких серверных веб-API. [3] [4] [5] Веб-перехватчики — это серверные веб-API, которые принимают входные данные в виде универсального идентификатора ресурса (URI), который предназначен для использования в качестве удаленного именованного канала или типа обратного вызова, так что сервер действует как клиент для разыменования предоставленного URI и запуска событие на другом сервере, который обрабатывает это событие, обеспечивая, таким образом, тип однорангового IPC .
Конечные точки
[ редактировать ]Конечные точки — это важные аспекты взаимодействия с серверными веб-API, поскольку они определяют, где находятся ресурсы, к которым может получить доступ стороннее программное обеспечение. Обычно доступ осуществляется через URI, к которому отправляются HTTP-запросы и от которого, таким образом, ожидается ответ. Веб-API могут быть общедоступными или частными, для последнего требуется токен доступа . [6]
Конечные точки должны быть статичными, иначе нельзя гарантировать правильное функционирование взаимодействующего с ними программного обеспечения. Если местоположение ресурса изменится (а вместе с ним и конечная точка), то ранее написанное программное обеспечение выйдет из строя, поскольку требуемый ресурс больше нельзя будет найти в том же месте. Поскольку поставщики API по-прежнему хотят обновлять свои веб-API, многие из них внедрили систему управления версиями в URI, указывающую на конечную точку.
Ресурсы против услуг
[ редактировать ]Веб-API Web 2.0 часто используют машинное взаимодействие, такое как REST и SOAP . Веб-API RESTful используют методы HTTP для доступа к ресурсам через параметры, закодированные в URL-адресе, и используют JSON или XML для передачи данных. Напротив, протоколы SOAP стандартизированы W3C и требуют использования XML в качестве формата полезной нагрузки, обычно через HTTP . Кроме того, веб-API на основе SOAP используют проверку XML для обеспечения структурной целостности сообщений за счет использования схем XML , предоставляемых документами WSDL . Документ WSDL точно определяет XML-сообщения и транспортные привязки веб-службы .
Документация
[ редактировать ]Серверные веб-API — это интерфейсы для взаимодействия внешнего мира с бизнес-логикой. Для многих компаний эта внутренняя бизнес-логика и связанная с ней интеллектуальная собственность — это то, что отличает их от других компаний и потенциально дает им конкурентное преимущество. Они не хотят, чтобы эта информация была раскрыта. Однако для обеспечения высокого качества веб-API необходим достаточный уровень документации. Одним из поставщиков API, который не только предоставляет документацию, но и ссылается на нее в сообщениях об ошибках, является Twilio . [7]
Однако теперь существуют каталоги популярных документированных серверных веб-API. [8]
Рост и влияние
[ редактировать ]Число доступных веб-API за последние годы постоянно росло, поскольку компании осознают возможности роста, связанные с использованием открытой платформы, с которой может взаимодействовать любой разработчик. ProgrammableWeb отслеживает более 24 000 веб-API, доступных в 2022 году, по сравнению со 105 в 2005 году.
Веб-API стали повсеместными . Существует несколько крупных программных приложений/сервисов, которые не предлагают ту или иную форму веб-API. Одной из наиболее распространенных форм взаимодействия с этими веб-API является встраивание внешних ресурсов, таких как твиты, комментарии Facebook, видео YouTube и т. д. На самом деле существуют очень успешные компании, такие как Disqus , основной услугой которых является предоставление встраиваемых инструментов. , например, многофункциональная система комментариев. [9] Любой веб-сайт из ТОП-100 веб-сайтов, входящих в рейтинг Alexa Internet, использует API и/или предоставляет свои собственные API, что является очень четким показателем огромного масштаба и влияния веб-API в целом. [10]
По мере роста числа доступных веб-API были разработаны инструменты с открытым исходным кодом, обеспечивающие более сложный поиск и обнаружение. APIs.json предоставляет машиночитаемое описание API и его операций, а связанный проект APIs.io предлагает общедоступный список API с возможностью поиска на основе формата метаданных APIs.json. [11] [12]
Бизнес
[ редактировать ]Коммерческий
[ редактировать ]Многие компании и организации в значительной степени полагаются на свою инфраструктуру веб-API для обслуживания своих основных бизнес-клиентов. В 2014 году Netflix получила около 5 миллиардов запросов к API, большинство из которых — через их частный API. [13]
Правительственный
[ редактировать ]Многие правительства собирают много данных, а некоторые правительства сейчас открывают доступ к этим данным. Интерфейсы, через которые эти данные обычно становятся доступными, — это веб-API. Веб-API позволяют получать такие данные, как «бюджет, общественные работы, преступность, юридические и другие данные агентства». [14] доступ к ним любому разработчику в удобной форме.
Пример
[ редактировать ]Примером популярного веб-API является API Astronomy Picture of the Day , которым управляет американское космическое агентство NASA . Это серверный API, используемый для получения фотографий космоса или других изображений, представляющих интерес для астрономов , а также метаданных об изображениях.
Согласно документации API, [15] API имеет одну конечную точку:
https://api.nasa.gov/planetary/apod
В документации указано, что эта конечная точка принимает запросы GET . Он требует от пользователя одну часть информации, ключ API , и принимает несколько других необязательных частей информации. Такие фрагменты информации известны как параметры . Параметры этого API записываются в формате, известном как строка запроса , которая разделяется знаком вопроса ( ?
) от конечной точки. Амперсанд ( &
) отделяет параметры в строке запроса друг от друга. Вместе конечная точка и строка запроса образуют URL-адрес , который определяет, как будет реагировать API. Этот URL-адрес также известен как запрос или вызов API .
В приведенном ниже примере два параметра передаются (или передаются ) в API через строку запроса. Первый — это необходимый ключ API, а второй — необязательный параметр — дата запрошенной фотографии.
https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&date=1996-12-03
Посещение вышеуказанного URL-адреса в веб-браузере инициирует запрос GET, вызывающий API и показывающий пользователю результат, известный как возвращаемое значение или return . Этот API возвращает JSON — тип формата данных, предназначенный для понимания компьютерами, но который также легко читается человеком. В данном случае JSON содержит информацию о фотографии белого карлика :
{
"date":"1996-12-03",
"explanation":"Like a butterfly,\r a white dwarf star begins its life\r by casting off a cocoon that enclosed its former self. In this\r analogy, however, the Sun would be\r a caterpillar\r and the ejected shell of gas would become the prettiest of all!\r The above cocoon, the planetary nebula\r designated NGC 2440, contains one of the hottest white dwarf stars known.\r The white dwarf can be seen as the bright dot near the photo's\r center. Our Sun will eventually become a \"white dwarf butterfly\",\r but not for another 5 billion years. The above false color image recently entered the public domain\r and was post-processed by F. Hamilton.\r",
"hdurl":"https://apod.nasa.gov/apod/image/9612/ngc2440_hst2_big.jpg",
"media_type":"image",
"service_version":"v1",
"title":"Cocoon of a New White Dwarf\r\nCredit:",
"url":"https://apod.nasa.gov/apod/image/9612/ngc2440_hst2.jpg"
}
Приведенный выше возврат API был переформатирован таким образом, чтобы имена элементов данных JSON, известные как ключи , появлялись в начале каждой строки. Последний из этих ключей, названный url
, указывает URL-адрес, указывающий на фотографию:
https://apod.nasa.gov/apod/image/9612/ngc2440_hst2.jpg
Пройдя по указанному выше URL-адресу, пользователь веб-браузера увидит эту фотографию:
Хотя этот API может вызываться конечным пользователем через веб-браузер (как в этом примере), он предназначен для автоматического вызова программным обеспечением или программистами во время написания программного обеспечения. JSON предназначен для анализа компьютерной программой, которая извлекает URL-адрес фотографии и другие метаданные. Полученная фотография может быть встроена в веб-сайт, автоматически отправлена с помощью текстового сообщения или использована для любых других целей, предусмотренных разработчиком программного обеспечения.
См. также
[ редактировать ]- Интерфейс прикладного программирования
- Динамическая веб-страница
- Обзор языков описания RESTful API
- ОТДЫХ
- ГрафQL
- Веб-сервис
Ссылки
[ редактировать ]- ^ «WebAPI Mozilla хочет заменить нативные приложения HTML5 | Webmonkey | Wired.com» . 05.12.2013. Архивировано из оригинала 5 декабря 2013 г. Проверено 13 января 2022 г.
- ^ Mozilla WebAPI Wiki
- ^ «Что такое мэшап? — Определение с сайта WhatIs.com» . WhatIs.com . Архивировано из оригинала 24 апреля 2015 г. Проверено 4 ноября 2015 г.
- ^ «Панель мэшапов» . ProgrammableWeb.com. 2009. Архивировано из оригинала 7 мая 2021 года . Проверено 29 мая 2021 г.
- ^ Максимилиан, Э. Майкл; Ранабаху, Аджит; Гомадам, Картик (сентябрь – октябрь 2008 г.). «Онлайн-платформа для веб-API и гибридных сервисов». IEEE Интернет-вычисления . 12 (5): 32–43. дои : 10.1109/MIC.2008.92 . S2CID 14949046 .
- ^ «Изменения в версии 1.1 API Twitter» .
- ^ Маллой, Брайан. Проектирование веб-API: создание интерфейсов, которые нравятся разработчикам (PDF) . апигей. п. 11.
- ^ «Справочник API» . Программируемая сеть . Проверено 3 ноября 2015 г.
- ^ «Disqus — сообщество интернет-сообществ» . Дискус . Проверено 4 ноября 2015 г.
- ^ «500 лучших сайтов Alexa в мире» . www.alexa.com . Проверено 4 ноября 2015 г.
- ^ "APIs.json" . apisjson.org . Проверено 14 марта 2016 г.
- ^ «APIs.io — API поисковой системы» . apis.io. Проверено 14 марта 2016 г. Так что сделайте это ясно и понятно и поделитесь своими знаниями.
- ^ «10 главных уроков, извлеченных из API Netflix — OSCON 2014, слайд 73» . 24 июля 2014 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Tech Trends 2015, API-экономика» . Издательство Делойтского университета . Проверено 3 ноября 2015 г.
- ^ «Астрономическая картина дня» . API НАСА .
Дальнейшее чтение
[ редактировать ]- Джейкобсон, Дэниел; Вудс, Дэн; Брэйл, Грег (ноябрь 2011 г.). API – руководство по стратегии . Севастополь, Калифорния: O'Reilly Media . ISBN 978-1-4493-0892-6 .
- Маллой, Брайан. Проектирование веб-API: создание интерфейсов, которые нравятся разработчикам (PDF) . Апигей.
- «Веб-API» . Гугл Хром .
- «Справочник по веб-API — справочник по веб-технологиям» . Сеть разработчиков Mozilla . 20 февраля 2023 г.
- «Демонстрация веб-API» . Демонстрация веб-API .