stringtranslate.com

Веб-API

Скриншот документации по веб-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] Любой веб-сайт, входящий в рейтинг TOP 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" : "Подобно бабочке, звезда-белый карлик начинает свою жизнь, сбрасывая кокон, в котором она была раньше. Однако в этой аналогии , Солнце было бы гусеницей, а выброшенная газовая оболочка стала бы самой красивой!\r Вышеупомянутый кокон, планетарная туманность\r, обозначенная NGC 2440, содержит одну из самых горячих известных звезд-белых карликов.\r Белый карлик можно увидеть как яркую точку в центре фотографии. Наше Солнце в конечном итоге станет «бабочкой белого карлика»,\r но не раньше, чем через 5 миллиардов лет. Приведенное выше изображение в искусственных цветах недавно стало достоянием общественности. домен\r и был обработан Ф. Гамильтоном.\r" , "hdurl" : "https://apod.nasa.gov/apod/image/9612/ngc2440_hst2_big.jpg" , "media_type" : "image" , "service_version" : "v1" , "title" : "Кокон нового белого карлика\r\nКредит:" , "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-адрес фотографии и другие метаданные. Полученную фотографию можно встроить на веб-сайт, автоматически отправить в текстовом сообщении или использовать для любой другой цели, предусмотренной разработчиком программного обеспечения.

Смотрите также

Рекомендации

  1. ^ «WebAPI Mozilla хочет заменить собственные приложения HTML5 | Webmonkey | Wired.com» . 05.12.2013. Архивировано из оригинала 5 декабря 2013 г. Проверено 13 января 2022 г.
  2. ^ Mozilla WebAPI Wiki
  3. ^ «Что такое мэшап? - Определение с сайта WhatIs.com» . WhatIs.com . Архивировано из оригинала 24 апреля 2015 г. Проверено 4 ноября 2015 г.
  4. ^ "Панель создания мэшапа" . ProgrammableWeb.com. 2009. Архивировано из оригинала 7 мая 2021 года . Проверено 29 мая 2021 г.
  5. ^ Максимилиан, Э. Майкл; Ранабаху, Аджит; Гомадам, Картик (сентябрь – октябрь 2008 г.). «Онлайн-платформа для веб-API и гибридных сервисов». IEEE Интернет-вычисления . 12 (5): 32–43. дои : 10.1109/MIC.2008.92. S2CID  14949046.
  6. ^ «Изменения, входящие в версию 1.1 API Twitter» .
  7. ^ Маллой, Брайан. Проектирование веб-API: создание интерфейсов, которые нравятся разработчикам (PDF) . апигей. п. 11.
  8. ^ «Каталог API». Программируемая сеть . Проверено 3 ноября 2015 г.
  9. ^ «Disqus - Интернет-сообщество сообществ» . Дискус . Проверено 4 ноября 2015 г.
  10. ^ «500 лучших сайтов Alexa в мире» . www.alexa.com . Проверено 4 ноября 2015 г.
  11. ^ "APIs.json". apisjson.org . Проверено 14 марта 2016 г.
  12. ^ «APIs.io — поисковая система API» . apis.io. _ Проверено 14 марта 2016 г.Так что сделайте это ясно и понятно и поделитесь своими знаниями.
  13. ^ «10 главных уроков, извлеченных из API Netflix — OSCON 2014, слайд 73» . 24 июля 2014 г. {{cite journal}}: Требуется цитировать журнал |journal=( помощь )
  14. ^ «Технические тенденции 2015, экономика API» . Издательство Делойтского университета . Проверено 3 ноября 2015 г.
  15. ^ "Астрономическая картина дня" . API НАСА .

дальнейшее чтение