Предоставление API из Apache APISIX для Power Platform

Bobur Umurzokov

Bobur Umurzokov

February 27, 2023

Technology

Apache APISIX API Gateway позволяет профессиональным разработчикам публиковать свои серверные службы в виде API, отслеживать их использование и легко предоставлять эти API для Power Platform (Power Apps и Power Automate) в качестве пользовательских соединителей для обнаружения и интеграции конечных точек API Gateway в пользовательские приложения без необходимости писать код с нуля.

В этой статье мы покажем, как создать пользовательский соединитель для API Gateway с открытым исходным кодом Apache APISIX в Power Platform в качестве альтернативы Azure API Management, если вы создаете дополнительные компоненты для существующей системы с доступными API, а инфраструктура вашей системы размещена локально или на других облачных провайдерах, а не на Azure.

Цели обучения

В этой статье вы узнаете следующее:

  • Преимущества интеграции Power Apps с Apache APISIX.
  • Что такое пользовательский соединитель?
  • Настройка нового пользовательского соединителя для API Gateway Apache APISIX в Power Platform.
  • Создание Canvas Mobile App в PowerApps, использующей новый пользовательский соединитель.

Преимущества интеграции Power Apps с Apache APISIX

Интеграция Power Apps с Apache APISIX предоставляет организациям несколько преимуществ. Ваши Power Apps могут получать доступ к вашим API через API Gateway, и вы можете настроить дополнительные параметры на APISIX.

Вот некоторые из них:

  1. Улучшенная безопасность: Предлагает "расширенное ограничение запросов" для предотвращения неожиданных ошибок, вызванных массовыми запросами к серверным системам, и настройку политики ограничения скорости для ваших серверных API, аутентификации и шифрования, которые могут быть применены к пользовательским приложениям.

  2. Масштабируемость: Обрабатывает большие объемы трафика и может масштабироваться в зависимости от спроса. Это означает, что пользовательские приложения, созданные на Power Apps, могут справляться с растущими объемами трафика по мере роста бизнеса.

  3. Производительность: Предоставляет такие функции, как балансировка нагрузки и кэширование, которые могут улучшить производительность пользовательских приложений, созданных на Power Apps.

Что такое пользовательский соединитель?

Пользовательский соединитель в Power Apps — это инструмент, который позволяет пользователям создавать соединение между их приложением и внешним источником данных или API, который не поддерживается Power Apps по умолчанию. В нашем случае это Apache APISIX. Пользовательские соединители предоставляют способ доступа к данным и службам из внешних систем в приложении без необходимости написания сложного кода или выполнения сложных конфигураций.

Пользовательские соединители создаются путем определения конечных точек API, методов и требований аутентификации внешней системы, а также любых необходимых параметров и форматов ответов. После создания и аутентификации пользовательского соединителя его можно использовать в Power Apps для выполнения операций, таких как получение данных, создание записей, обновление записей и удаление записей.

Настройка нового пользовательского соединителя

Рассмотрим пример настройки пользовательского соединителя для Apache APISIX.

Для демонстрации мы будем использовать пример проекта, созданного на основе ASP.NET Core WEB API с одной конечной точкой GET (получает список всех продуктов) и пример проекта Apache APISIX Docker. В файле README вы найдете все инструкции по запуску примера приложения.

Предварительные требования

  • Необходимо быть знакомым с основными концепциями API.
  • Базовые знания о нескольких основных концепциях APISIX, таких как Route, Upstream и Plugin.
  • Установленный Docker на вашем компьютере для запуска APISIX.
  • Установите APISIX и серверный API продукта с помощью docker compose.
  • Настройте необходимые параметры, такие как конечная точка API, upstream и правила маршрутизации. Вы можете следовать этому руководству, чтобы настроить API Gateway APISIX. Убедитесь, что вы создали Route и upstream, и APISIX должен перенаправлять запросы на наш целевой API /api/products.
  • Для выполнения этого упражнения требуется доступ к премиум-соединителям Power Apps. Зарегистрируйтесь для получения бесплатного плана для разработчиков.

Шаг 1: Запуск мастера пользовательского соединителя

Для начала войдите в портал Power Apps и перейдите в раздел "Connectors". Нажмите кнопку "New custom connector", затем выберите "Create new from blank" и укажите имя для нового соединителя.

Изображение нового пользовательского соединителя 1

Шаг 2: Укажите основные данные для вашего соединителя

На вкладке "General" введите следующие данные для вашего соединителя:

  • Имя соединителя: Дайте вашему соединителю имя, например "APISIX API Gateway".
  • Описание: Укажите краткое описание вашего соединителя.
  • Схема: Убедитесь, что вы также выбрали правильную схему, в данном случае мы должны использовать HTTP, так как мы не настроили наш API для использования HTTPS.
  • Поставьте галочку на опции "Connect via on-premises data gateway". Вам нужно будет установить шлюз данных для локальной сети на машину внутри вашей сети. Потому что пользовательский соединитель не может использовать localhost в качестве имени хоста без использования шлюза данных для локальной сети.
  • Базовый URL: Введите базовый URL вашего API Gateway Apache APISIX. Например, http://localhost:9080.

Изображение нового пользовательского соединителя 2

Шаг 3: Выберите тип аутентификации

Затем перейдите на вкладку "Security" и укажите необходимые данные аутентификации в зависимости от типа аутентификации, который будет использовать ваш пользовательский соединитель. Например, Basic, OAuth2 или API Key.

Шаг 4: Определите конечные точки вашего API

На вкладке "Definition" вы можете определить конечные точки API, которые хотите предоставить в вашем пользовательском соединителе. Например, вы можете определить конечную точку для получения списка всех продуктов из API Gateway.

Чтобы определить конечную точку, выполните следующие шаги:

  • Имя: Введите имя для вашей конечной точки, например "Get Product List".
  • Краткое описание: Укажите краткое описание того, что делает конечная точка.
  • Идентификатор операции: Введите уникальный идентификатор операции для конечной точки, например "GetProducts".
  • Метод: Выберите HTTP-метод, который использует ваша конечная точка, например GET.
  • URL: Введите URL конечной точки API для вашей конечной точки, например /api/products.
  • Запрос: Укажите параметры запроса и заголовки, которые требуются для вашей конечной точки.
  • Ответ: Укажите схему ответа, которую возвращает ваша конечная точка.

Изображение нового пользовательского соединителя 3

Вы можете определить столько конечных точек, сколько необходимо для вашего пользовательского соединителя.

Шаг 5: Протестируйте ваш пользовательский соединитель

После того как вы определили конечные точки, вы можете протестировать ваш пользовательский соединитель, нажав на вкладку "Test". Здесь вы можете ввести пример данных для ваших запросов и увидеть ответы, которые возвращает ваш API Gateway.

Изображение нового пользовательского соединителя 4

Шаг 6: Сохраните ваш пользовательский соединитель

После того как вы определили все конечные точки и протестировали соединитель, нажмите кнопку "Create connector", чтобы сохранить изменения.

Ваш пользовательский соединитель для API Gateway Apache APISIX теперь готов к использованию в ваших Power Apps. Вы можете использовать его для создания пользовательского приложения в следующем разделе, которое взаимодействует с конечной точкой вашего API Gateway.

Изображение нового пользовательского соединителя 5

Создание нового Power App

Теперь мы создадим новое мобильное приложение с одной страницей, которое получает список продуктов из конечной точки API Gateway APISIX с использованием пользовательского соединителя, созданного в предыдущем разделе.

Шаг 1: Создание нового приложения для продуктов

Для начала войдите в портал Power Apps и создайте новое приложение, выбрав "Create an app". Выберите опцию "Phone layout", чтобы создать мобильное приложение, и укажите имя для вашего приложения.

Шаг 2: Добавление источника данных

На вкладке "Data" добавьте ваш пользовательский соединитель API Gateway Apache APISIX в качестве источника данных. Это позволит вашему приложению взаимодействовать с конечными точками API Gateway, определенными в вашем пользовательском соединителе.

Шаг 3: Дизайн пользовательского интерфейса

На вкладке "Canvas" создайте дизайн пользовательского интерфейса для вашего приложения. Вы можете добавить различные элементы управления, такие как кнопки, метки, галереи и формы, чтобы создать удобный и интерактивный интерфейс. В этом примере мы покажем список продуктов с их названиями и ценами.

Шаг 4: Определение действий и логики

На вкладке "Action" определите действия, которые ваше приложение должно выполнять при взаимодействии пользователя с элементами управления. Например, вы можете определить действие для получения всех продуктов из вашего API Gateway, отображения их в галерее и добавления функции поиска.

Изображение нового Power App 1

Шаг 5: Тестирование вашего приложения

После того как вы определили действия и логику для вашего приложения, вы можете протестировать его, нажав кнопку "Preview". Здесь вы можете взаимодействовать с элементами управления и видеть данные, полученные из вашего API Gateway.

Шаг 6: Публикация вашего приложения

После тестирования вашего приложения вы можете опубликовать его, чтобы сделать его доступным для ваших пользователей. Вы можете опубликовать ваше приложение на различных платформах, таких как iOS, Android и Windows.

Следующие шаги

В этой статье вы узнали, как описать API и определить пользовательский соединитель Apache APISIX. Также мы создали мобильное приложение с Power Apps, которое использует API Gateway с его пользовательским соединителем. Наш пользовательский соединитель используется так же, как и управляемые Microsoft соединители. Это означает, что вы можете использовать соединитель в Logic App, Power Automate и других. Так что вперед, попробуйте и посмотрите, сколько вы можете достичь с Power Platform и Apache APISIX.

Связанные ресурсы

Рекомендуемые материалы

Сообщество

🙋 Присоединяйтесь к сообществу Apache APISIX 🐦 Следите за нами в Twitter 📝 Найдите нас в Slack

Tags: