stringtranslate.com

Веб-API

Скриншот веб-документации API, написанной NASA

Веб -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 .

Mashup- приложения — это веб-приложения , которые объединяют использование нескольких серверных веб-API. [3] [4] [5] Веб-перехватчики — это серверные веб-API, которые принимают входные данные в виде унифицированного идентификатора ресурса (URI), который предназначен для использования в качестве удаленного именованного канала или типа обратного вызова, так что сервер действует как клиент для разыменования предоставленного URI и запуска события на другом сервере, который обрабатывает это событие, тем самым обеспечивая тип однорангового IPC .

Конечные точки

Конечные точки являются важными аспектами взаимодействия с серверными веб-API, поскольку они указывают, где находятся ресурсы, к которым может получить доступ стороннее программное обеспечение. Обычно доступ осуществляется через URI, на который отправляются HTTP-запросы, и от которого, таким образом, ожидается ответ. Веб-API могут быть публичными или частными, последний из которых требует токена доступа . [6]

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

Ресурсы против услуг

Web 2.0 Web API часто используют машинные взаимодействия, такие как REST и SOAP . RESTful web API используют HTTP- методы для доступа к ресурсам через URL-кодированные параметры и используют JSON или XML для передачи данных. Напротив, протоколы SOAP стандартизированы W3C и предписывают использование XML в качестве формата полезной нагрузки, как правило, по HTTP . Кроме того, основанные на SOAP Web API используют проверку XML для обеспечения структурной целостности сообщений, используя XML-схемы, предоставленные с документами WSDL . Документ WSDL точно определяет XML-сообщения и транспортные привязки веб-службы .

Документация

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

Однако теперь существуют каталоги популярных документированных серверных веб-API. [8]

Рост и влияние

Число доступных веб-API постоянно росло в течение последних лет, поскольку компании осознают возможности роста, связанные с запуском открытой платформы, с которой может взаимодействовать любой разработчик. ProgrammableWeb отслеживает более 24000 веб-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" : "Как бабочка,\ra белая карликовая звезда начинает свою жизнь\r, сбрасывая кокон, который заключал ее прежнее я. Однако в этой\r аналогии Солнце было бы\ra гусеницей\r, а выброшенная газовая оболочка стала бы самой красивой из всех!\r Кокон выше, планетарная туманность\r, обозначенная как NGC 2440, содержит одну из самых горячих известных белых карликовых звезд.\r Белый карлик можно увидеть как яркую точку около центра\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. ^ "Mozilla WebAPI хочет заменить собственные приложения на HTML5 | Webmonkey | Wired.com". 2013-12-05. Архивировано из оригинала 2013-12-05 . Получено 2022-01-13 .
  2. ^ Mozilla WebAPI Wiki
  3. ^ "Что такое mash-up? - Определение с WhatIs.com". WhatIs.com . Архивировано из оригинала 24 апреля 2015 г. Получено 04.11.2015 .
  4. ^ "Mashup Dashboard". ProgrammableWeb.com. 2009. Архивировано из оригинала 7 мая 2021 г. Получено 29 мая 2021 г.
  5. ^ Максимилиан, Э. Майкл; Ранабаху, Аджит; Гомадам, Картик (сентябрь–октябрь 2008 г.). «Онлайн-платформа для веб-API и сервисных гибридных приложений». IEEE Internet Computing . 12 (5): 32–43. doi :10.1109/MIC.2008.92. S2CID  14949046.
  6. ^ «Изменения в версии 1.1 API Twitter».
  7. ^ Маллой, Брайан. Проектирование веб-API — создание интерфейсов, которые нравятся разработчикам (PDF) . apigee. стр. 11.
  8. ^ "API Directory". ProgrammableWeb . Получено 2015-11-03 .
  9. ^ "Disqus – Сообщество сообществ в Интернете". Disqus . Получено 2015-11-04 .
  10. ^ "Alexa Top 500 Global Sites". www.alexa.com . Получено 2015-11-04 .
  11. ^ "APIs.json". apisjson.org . Получено 2016-03-14 .
  12. ^ "APIs.io - поисковая система API". apis.io . Получено 2016-03-14 .Поэтому сделайте это понятным и поделитесь своими знаниями.
  13. ^ «10 главных уроков, извлеченных из API Netflix — OSCON 2014, слайд 73». 2014-07-24. {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  14. ^ "Tech Trends 2015, API economy". Deloitte University Press . Получено 2015-11-03 .
  15. ^ "Астрономическая картинка дня". API NASA .

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