"Термин API появился задолго до появления Всемирной паутины. Совсем недавно появился новый термин: API-шлюз. Поначалу это звучит немного странно, поскольку концепция API сама по себе уже предполагает наличие шлюза".
Определение: Что такое "API-шлюз"?
Я очень рад, что вы спросили! Возможно, вы помните, что термин API появился задолго до появления Всемирной паутины, и вы, надеюсь, знаете, что API означает "интерфейс прикладного программирования".
Но совсем недавно появился новый термин: "API-шлюз". Поначалу он звучит немного странно, поскольку концепция API сама по себе уже предполагает наличие шлюза. Это может заставить вас задаться вопросом: "Что такое API-шлюз?".
В двух словах, API-шлюз - это инструмент управления, который находится между клиентом и набором внутренних сервисовКаждый из них имеет свой собственный API.
Поэтому шлюз API действует как единая точка входа для определенной группы API. Клиентом в этом случае обычно является приложение конечного пользователя.
С более технической точки зрения, API-шлюз можно рассматривать как специализированный обратный прокси-сервер, который может заставить различные API выглядеть так, как будто они являются одним API.
Взгляд на микросервисы
Термин "API-шлюз" часто используется в контексте микросервисов. Гранулярность API, предоставляемых микросервисами, часто отличается от необходимой. Это просто вытекает из концепции микросервисов: есть несколько маленьких частей, выполняющих маленькие разные задачи.
Микросервисы обычно предоставляют мелкозернистые API, что означает, что клиентам необходимо взаимодействовать с несколькими сервисами. Например, клиенту, которому нужна подробная информация о продукте, может потребоваться получить данные из множества сервисов. Именно поэтому в мире микросервисов имеет смысл использовать API-шлюз.
В этом контексте и в рамках архитектуры микросервисов, опять же цель API-шлюза - предоставить единую точку входа для всех клиентовно в данном случае это делается в основном за счет упрощения API, предоставляемого клиентам.
Архитектура API-шлюза
На этой диаграмме вы можете увидеть API-шлюз находится на границе систем. Он действует как инструмент управления или промежуточное программное обеспечение, которое посредничает между клиентом и набором внутренних служб.
Эти внутренние службы могут меняться местоположение, архитектуру и реализацию (язык, фреймворк и другие) с минимальным воздействием.
Архитектурный взгляд
Вам не обязательно ограничиваться представлением API-шлюза микросервисов, хотя это то, что можно назвать "классическим представлением API-шлюза".
Вы также можете взглянуть на API-шлюз с более архитектурной точки зрения и рассматривать его как шаблон проектирования. Можно сказать, что шаблон шлюза API является двойным, поскольку он фактически соответствует два классических шаблона проектирования Gang of Four: адаптер и фасад.
Как адаптерОна позволяет общаться и сотрудничать, даже если интерфейсы несовместимы.
Как фасадAPI-шлюз инкапсулирует внутреннюю архитектуру приложения и предоставляет API своим клиентам.
Как с точки зрения микросервисов, так и с точки зрения архитектуры, шлюз API всегда играет роль оркестровки и, в конце концов, должны быть там, чтобы все работало гладко. Но как перейти от концепций и определений к результатам?
Как API-шлюз может обеспечить практические результаты
Давайте погрузимся в более практические аспекты и посмотрим, как можно добиться результатов.
Для этого мы будем использовать определенный API-шлюз, наш собственный интеграционный шлюз под названием Connect Bridge. Представьте Connect Bridge как единую точку входа, которая "говорит" на SQL. Это означает, что какой бы код не использовался (а вы можете использовать любой язык программирования), он будет взаимодействовать с этим API-шлюзом, как если бы это была база данных, с помощью обычных CRUD-запросов: SELECT, INSERT, UPDATE, DELETE.
Connect Bridge имеет "переводчик" (который мы на самом деле называем "коннектор") для каждого приложения, с которым мы хотим связаться через API. Этот коннектор эффективно переводит SQL-запросы в вызовы API.
Используя Connect Bridge, вам потребуется меньше кода (намного меньше - сокращение может достигать 90% в зависимости от проекта), код будет легче понять и протестировать, и вы значительно сократите количество ошибок.
Забавно то, что когда вы работаете с Connect Bridge, тот факт, что он использует SQL, заставит вас думать, что вы работаете с базой данных целевой системы, например, с базой данных Microsoft Exchange. Но не волнуйтесь, это не так, и целостность базы данных в безопасности - это шлюз, и он всегда обращается к целевой системе через свой API.
Пошаговая работа с Connect Bridge в качестве шлюза API
- Код вашего нового или старого приложения
- CRUD-заявления на стандартном SQL с доступом к целевой системе как к базе данных
- Connect Bridge переводит SQL в вызовы API
- Для каждой целевой системы эти переводы фактически обрабатываются коннектором
Какие языки программирования я могу использовать?
Примечание о том, какой язык программирования можно использовать с Connect Bridge. Как я уже говорил, вы можете использовать практически любой язык программирования.
Вам просто нужно убедиться, что он поддерживает ODBC, JDBCили Веб-сервисы. Если это так, то все в порядке.
Например, предположим, вы хотите использовать Java. Отлично, тогда вы можете сгенерировать строку подключения JDBC, и вот у вас есть шлюз Java API.
Вы хотите использовать Node.js? Это тоже хорошо, вы можете сгенерировать строку подключения к веб-сервисам, и у вас будет API-шлюз Node.js.
Я мог бы продолжить, но, думаю, вы уже поняли: вы можете продолжать и использовать свой любимый язык программирования.
Соединительные струны Connect Bridge
Ценообразование API-шлюза Connect Bridge
Connect Bridge является платным инструментом, цены варьируются в зависимости от количества и типа используемых коннекторов и количества пользователей. Чтобы вы имели общее представление о стоимости этого API-шлюза, мы можем сказать, что цены начинаются от 150 евро в месяц. Для получения более подробной информации о ценах перейдите здесь. Мы рекомендуем попробовать самостоятельно с бесплатная пробная версия сначала, и таким образом вы сможете получить представление о том, каким будет прирост производительности.
С точки зрения окупаемости инвестиций, вы также должны учитывать, что шлюз обеспечивает окончательное решение продолжает работать даже при обновлении целевой системы без каких-либо изменений в написанном вами коде. Все хлопоты возьмет на себя шлюз.
Первые шаги с Connect Bridge
Чтобы провести вас через первые шаги работы с Connect Bridge, нам понадобится пример целевой системы. Мы выберем для этого Microsoft SharePoint, но это могут быть и другие системы.
- Запросить бесплатная пробная версия.
- Установите Connect Bridge.
- Выполните конфигурацию с помощью Connect Bridge Management Studio:
- Аутентификация шлюза API состоит из двух этапов. Чтобы подключиться к SharePoint, пользователям необходимо подключиться к Connect Bridge, а затем Connect Bridge необходимо подключить к SharePoint.
- Добавьте учетную запись для SharePoint (Учетные записи - Добавить учетную запись). Вам понадобятся ваши учетные данные SharePoint.
- Либо разрешите пользователю Administrator по умолчанию использовать эту учетную запись, либо создайте нового пользователя и разрешите ему использовать учетную запись SharePoint.
- o Нажмите на опцию New Query (Новый запрос), а затем на Connection Browser (Браузер подключений). Найдите коннектор SharePoint и открывайте его, пока не дойдете до DefaultConnection. Щелкните на нем правой кнопкой мыши и выберите Get Connection string. Затем скопируйте соответствующую строку подключения. Она понадобится вам для вашего кода.
- Аутентификация шлюза API состоит из двух этапов. Чтобы подключиться к SharePoint, пользователям необходимо подключиться к Connect Bridge, а затем Connect Bridge необходимо подключить к SharePoint.
Испытание Connect Bridge
Используйте опцию Новый запрос, чтобы проверить запрос, который получит нужные вам данные из SharePoint. Здесь мы рассмотрим пример запроса, однако его следует скорректировать в соответствии с тем, что вы хотите получить от SharePoint.
Выбрав опцию New Query (Новый запрос), откройте Connection Browser (Браузер соединений).
- Найдите коннектор SharePoint и откройте его, пока не увидите опцию Tables. Вы сможете увидеть, что схема содержит "таблицу" под названием Site_Pages.
- Мы можем использовать запрос SELECT UniqueId, ContentType, Created, Modified, ContentVersion FROM Site_Pages LIMIT 10;
Это позволит выбрать первые 10 записей из списка "Страницы сайта" SharePoint.
Обратите внимание, что хотя кажется, что мы используем базу данных напрямую, это совсем не так. Connect Bridge обращается только к API, а затем представляет данные так, как будто они получены из базы данных. Не стесняйтесь исследовать здесь немного. Вы также можете изучить доступные хранимые процедуры. Как только вы составите запрос, скопируйте его, потому что он понадобится вам в вашем коде.
Также важно отметить, что на данном этапе вы просто тестируете. Вы можете рассматривать Connect Bridge Management Studio как игровую площадку. Когда вы будете удовлетворены полученным запросом, вы просто используете его в своем коде, как если бы вы обращались к базе данных. Это довольно просто.
Для получения более подробной информации вы можете ознакомиться с документацией по шлюзу API, которую вы получите при получении вашего бесплатная пробная версия. Вы также можете проверить журналы шлюза API, что в Connect Bridge легко сделать с помощью функции Connect Bridge Студия управления используя опцию Центр администрирования - Система - Журналы на панели навигации.
Заключение и выводы
Концепция API-шлюза может показаться поначалу слишком теоретической, однако, если сосредоточиться на конкретном инструменте, таком как Connect Bridge, нетрудно представить себе его преимущества.
- Доступ осуществляется централизованно на шлюзе API, независимо от количества целевых систем
- Отсутствие необходимости изучать новый API или язык программирования позволяет сократить количество ошибок и повысить производительность труда
- Обслуживание также централизовано и изолировано - все это происходит на стороне API-шлюза, а не в вашем коде, при этом Connect Bridge гарантирует прямую совместимость для каждой целевой системы (а также обратную совместимость, если она вам когда-нибудь понадобится).
Если у вас есть какие-либо комментарии или предложения, напишите их в форме ниже, и мы ответим как можно скорее.
Ана Нето
технический консультант 1ТП17Т