В контексте архитектуры или проектирования системы управление API обычно относится к настраиваемому, высокофункциональному обратному прокси-серверу, который используется для управления доступом клиентов (внешних, внутренних или иных) к API, конечной точке или методу. Обычно используемое с RESTful API, но не исключительно, управление API обеспечивает уровень управления запросами и защиты, чтобы входящий запрос можно было проверить, изменить и обработать, а ответ, возвращающийся от серверной системы, можно было дополнительно изменить или обработать. Некоторые организации могут использовать корпоративную сервисную шину для достижения аналогичных целей. Корпоративная сервисная шина — это гибко определяемый термин для класса технологий, которые включают дополнительные аспекты, связанные с этим компонентом, но могут извлечь выгоду из того же набора рекомендаций для сервисов управления API.
Примеры систем управления API включают эти и другие:
Поведение управления API отличается от традиционного обратного прокси-сервера, который обычно перенаправляет весь шаблон HTTP-трафика на внутренний сервер. Например:
<external-host>:443/server/rest/services/*
» <internal-host>>:6443/arcgis/rest/services/*
Управление API часто включает в себя выборку отдельных путей URI API и методов HTTP (т.е. POST в /routes/extract
и PATCH в /routes/<routeid>)
, что означает, что каждый отдельный метод или шаблон должен быть определен, а также что каждый шаблон может иметь различные правила, поведение и серверные приемники или сервисы. Это часто используется при создании новых API или систем, где существующий набор веб-сервисов не существует, или при реализации архитектуры в стиле микросервисов, где различные серверные компоненты или системы отвечают за обслуживание отдельных запросов API. В некоторых случаях управление API может использовать определение API серверной части, например спецификацию OpenAPI, для создания множества конечных точек или методов интерфейса.
Управление API также обычно включает в себя множество других опций обработки, которые либо манипулируют содержимым запроса (настройка или переписывание пути, добавление или изменение заголовка, изменение назначения на основе содержимого тела POST), применяют некоторую фильтрацию к запросу (ограничение скорости, блокировка определенных диапазонов IP-адресов, требование ключей API) или работают с ответом (скрывают имена серверов, удаляют заголовки ответа, добавляют отпечаток пальца или идентификатор). Эти операции определяются на уровне управления API и работают с каждым запросом по мере его отправки и создания ответа.
Все эти шаблоны в целом применимы и к технологиям корпоративных сервисных шин, но с некоторыми отличиями. ESB, как правило, больше ориентированы на синхронную доставку сообщений, где изменение в одной части системы (добавляется новая запись, выполняется обновление) вызывает передачу этого изменения в ESB, которая затем преобразует и отправляет сообщение в другие системы, чтобы поддерживать их синхронизацию. В некотором смысле управление API — это скорее методология запросов и опросов, в которой ESB чаще всего вводят строгие обязательства по доставке сообщений, шаблоны «издатель-подписчик» или другие подобные подходы.
Управление API можно использовать в различных шаблонах с ArcGIS. Как правило, управление API наиболее применимо в случаях, когда оно развертывается “перед” сервисами на основе ArcGIS Server, такими как картографические, пространственные сервисы или сервисы геообработки, в сценариях, где эти сервисы должны быть доступны либо другой корпоративной системе, либо разработчику или конечному клиенту с помощью настроенного приложения. Вот несколько ключевых соображений по работе с системой управления API:
Например:
/arcgis/rest/services/ServiceName/MapServer
/arcgis/rest/services/ServiceName/MapServer/exportImage
/arcgis/rest/services/ServiceName/MapServer/0/query
/arcgis/rest/services/ServiceName/MapServer/1/query
Управление API становится все более популярным способом обеспечения возможностей интеграции между корпоративными системами. Многие организации инвестируют или создают правила, гарантирующие, что все внутренние транзакции осуществляются через систему управления API, или могут требовать использования управления API для создания сервисов, доступных извне. Рекомендации в контексте системной интеграции:
Управление API по определению не включает уровень аутентификации, но многие организации хотят применять аутентификацию к своим конечным точкам управления API в целях проверки пользователей и управления авторизацией. Распространенные методы проверки подлинности на основе управления API включают использование API или ключа подписки, а также интеграцию с методами проверки подлинности на основе OAuth с существующим поставщиком удостоверений (IdP). Каждый из этих шаблонов может создать некоторые проблемы с рабочими процессами интеграции ArcGIS.
Имейте в виду, что методы аутентификации клиентов на основе управления API могут быть несовместимы со стандартными клиентами ArcGIS. Например, если система управления API требует аутентификации на основе заголовков с использованием заголовка, специфичного для сервиса, или заголовка Bearer Authorization
, стандартные клиенты ArcGIS не смогут динамически добавлять этот заголовок в запросы для поддержки доступа к этому сервису. Аналогичным образом, ключи API могут быть общим уровнем аутентификации, добавляемым через интерфейс управления API, но разработчики приложений должны знать об этом требовании и иметь возможность добавлять его в запросы, чтобы интегрировать эти сервисы в приложение. Различные SDK ArcGIS и шаблоны регистрации сервисов могут поддерживать этот тип ключа подписки или шаблона аутентификации ключа API, но их следует тщательно протестировать, прежде чем предполагать, что шаблон аутентификации подходит.
Аутентификация на основе OAuth для управления API сопряжена и с другими проблемами. При разработке пользовательского приложения с использованием поддерживаемого пакета SDK может быть относительно просто предоставить первоначальное перенаправление в сервис OAuth, вернуть токен или код и использовать этот токен для добавления к дальнейшим запросам в этом сеансе. Однако при использовании готового приложения ArcGIS эту конфигурацию гораздо сложнее успешно использовать, поскольку эти клиенты ожидают прямого доступа к геосервисам ArcGIS без дополнительных шагов аутентификации, которые не управляются ArcGIS.
Как правило, использование API или ключей подписки обеспечивает наиболее успешный путь интеграции в этом контексте со следующими рекомендациями: