
Что такое API?
Интерфейс программирования приложений (англ. application programming interface) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами для написания всевозможных приложений.
Web API
Используется в веб-разработке, как правило, определенный набор HTTP-запросов, а также определение структуры HTTP-ответов, для выражения которых используют XML или JSON форматы. Web API является практически синонимом для веб-службы, хотя в последнее время за счет тенденции Web 2.0 осуществлен переход от SOAP к REST типу коммуникации. Веб-интерфейсы, обеспечивающие сочетание нескольких сервисов в новых приложениях, известны как гибридные.
(JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми.
Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 года), формат считается языконезависимым и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.)
(REST (сокр. англ. Representational State Transfer, «передача представлений состояний»[1]) — стиль построения архитектуры распределенного приложения. Был описан и популяризован в 2000 году Роем Филдингом (Roy Fielding), одним из создателей протокола HTTP. Самой известной системой, построенной в значительной степени по архитектуре REST, является современная Всемирная паутина.
Данные в REST должны передаваться в виде небольшого количества стандартных форматов (например HTML, XML, JSON). Сетевой протокол (как и HTTP) должен поддерживать кэширование, не должен зависеть от сетевого слоя, не должен сохранять информацию о состоянии между парами «запрос-ответ». Утверждается, что такой подход обеспечивает масштабируемость системы и позволяет ей эволюционировать с новыми требованиями.
Антиподом REST является подход, основанный на вызове удаленных процедур (Remote Procedure Call — RPC). Подход RPC позволяет использовать небольшое количество сетевых ресурсов с большим количеством методов и сложным протоколом. При подходе REST количество методов и сложность протокола строго ограничены, из-за чего количество отдельных ресурсов может быть большим.
SOAP (от англ. Simple Object Access Protocol — простой протокол доступа к объектам; вплоть до спецификации 1.2) — протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур (RPC). Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур. Официальная спецификация последней версии 1.2 протокола никак не расшифровывает название SOAP. SOAP является расширением протокола XML-RPC.
SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTP, HTTPS и др. Однако его взаимодействие с каждым из этих протоколов имеет свои особенности, которые должны быть определены отдельно. Чаще всего SOAP используется поверх HTTP.
SOAP является одним из стандартов, на которых базируются технологии веб-служб.
Недостатки
Использование SOAP для передачи сообщений увеличивает их объём и снижает скорость обработки. В системах, где скорость важна, чаще используется пересылка XML-документов через HTTP напрямую, где параметры запроса передаются как обычные HTTP-параметры.
Хотя SOAP является стандартом, некоторые программы часто генерируют сообщения в несовместимом формате. Например, запрос, сгенерированный AXIS-клиентом, не будет понят сервером WebLogic.
)
Web-технологии.
HTML-страницы системы World Wide Web бывают динамические и статические. Средства, наращивающие функциональные возможности Web и позволяющие создавать динамические HTML-страницы, подразделяются на расширения серверной части и расширения клиентской части. Расширения серверной части – это программы, позволяющие повысить функциональность Web-серверов. Расширения клиентской части – это программы, позволяющие наращивать функциональные возможности браузеров. Расширения серверной части можно подразделить на следующие три категории: · Расширения, использующие обычный CGI. Common Gateway Interface (общий шлюзовой интерфейс), или CGI, был первым интерфейсом, позволившим создавать приложения, наращивающие функциональность Web-серверов. CGI-программы обладают наибольшей переносимостью между Web-серверами. Сервер общается с CGI-приложением через стандартные ввод и вывод операционной системы, а также переменные окружения. CGI-программы могут быть написаны на любом языке программирования, вплоть до языка командного интерпретатора операционной системы. Недостатком CGI является необходимость загружать при каждом запросе большую программу, что может привести к истощению ресурсов сервера и происходит достаточно медленно. · Расширения, использующие гибридный CGI. Использование гибридного CGI позволяет сохранить свойственную CGI переносимость, избавившись от присущих ему недостатков. Идея заключается в использование маленькой CGI-программы и некоторого процесса-партнера. CGI-программа получает данные от Web-сервера и передает их процессу-партнеру, который выполняет всю обработку. Процесс-партнер (например, демон в UNIX) загружается один раз при загрузке операционной системы и общается с CGI-программой при помощи межпроцессных коммуникаций. · Расширения, использующие API. В настоящее время широкое распространение получили Web-сервера, предоставляющие программам-расширениям сервера специальные API-интерфейсы. Программы-расширения, использующие API, должны быть созданы в виде разделяемых библиотек (например, DLL, Dynamic Link Library в среде Windows). Они исполняются в адресном пространстве Web-сервера. Очевидно, что расширения такого типа значительно экономнее по отношению к системным ресурсам, чем CGI-программы. Недостатками этого способа являются его небезопасность (ошибка в такой программе может привести к выходу из строя всего сервера) и низкая переносимость API-приложений между разными Web-серверами (т.к. разные сервера могут использовать разные API). Наиболее распространенными API-интерфейсами Web-серверов являются NSAPI фирмы Netscape и ISAPI компании Microsoft.