Поддержка API в Статические веб-приложения Azure с помощью Azure Управление API

Azure Управление API — это служба, которая позволяет создавать современный шлюз API для существующих внутренних служб.

При связывании службы azure Управление API со статическим веб-приложением все запросы к статичному веб-приложению с маршрутом, начинающимся с /api того же маршрута в службе Управление API Azure.

Служба Azure Управление API может быть связана с несколькими статическими веб-приложениями одновременно. Продукт Управление API создается для каждого связанного статического веб-приложения. Все API, добавленные в продукт, доступны для связанного статического веб-приложения.

Все ценовые категории Azure Управление API доступны для использования с Статические веб-приложения Azure.

Параметры API для Статические веб-приложения включают следующие службы Azure:

Дополнительные сведения см. в обзоре API.

Примечание.

Для интеграции с Azure Управление API требуется план Статические веб-приложения Standard.

Интеграция серверной части не поддерживается в средах запросов на вытягивание Статические веб-приложения.

Необходимые компоненты

Чтобы связать экземпляр управления API со статическим веб-приложением, необходимо иметь существующий ресурс Azure Управление API и статическое веб-приложение.

Ресурс Description
Управление API Azure Если у вас еще нет экземпляра, выполните действия, описанные в руководстве по созданию экземпляра службы Управление API Azure.
Существующее статическое веб-приложение Если у вас еще нет одного, выполните действия, описанные в руководстве по началу работы , чтобы создать статическое веб-приложение No Framework .

Пример

Рассмотрим существующий экземпляр Azure Управление API, предоставляющий конечную точку через следующее расположение.

https://my-api-management-instance.azure-api.net/api/getProducts

После установки связи вы можете получить доступ к той же конечной точке по пути api из статического веб-приложения, как показано в этом примере URL-адреса.

https://red-sea-123.azurestaticapps.net/api/getProducts

Оба URL-адреса указывают на одну конечную точку API. Конечная точка в экземпляре Управление API должна иметь /api префикс, так как Статические веб-приложения сопоставляет запросы, сделанные /api и прокси-серверы, весь путь к связанному ресурсу.

Чтобы связать службу Azure Управление API в качестве серверной части API для статического веб-приложения, выполните следующие действия.

  1. В портал Azure перейдите в статическое веб-приложение.

  2. Выберите API в меню навигации.

  3. Найдите среду, с которой нужно связать службу Управление API. Выберите Ссылка.

  4. В типе ресурсов серверной части выберите Управление API.

  5. В подписке выберите подписку, содержащую службу Azure Управление API, которую вы хотите связать.

  6. В имени ресурса выберите службу Azure Управление API.

  7. Выберите Ссылка.

Важно!

По завершении процесса связывания запросы на маршруты, начинающиеся с /api прокси-службы Azure Управление API. Однако по умолчанию api не предоставляются. Сведения о настройке API для получения запросов на настройку продукта Управление API, чтобы разрешить использовать API.

Настройка API для получения запросов

В Управление API Azure есть функция продуктов, которая определяет способ поверхности API. В рамках процесса связывания служба Управление API настроена с именем Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked)продукта.

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

  1. В Управление API экземпляре на портале выберите вкладку "Продукты".

  2. Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked) Выберите продукт.

  3. Выберите Add API Key (Добавить ключ API).

  4. Выберите API, которые вы хотите предоставить из Статические веб-приложения, а затем щелкните ссылку "Выбрать".

Screenshot of the API Management Products API blade in the Azure portal, showing how to add an API to the product created for the Static Web Apps resource.

Процесс связывания также автоматически применяет следующую конфигурацию к службе Управление API:

  • Продукт, связанный с связанным статическим веб-приложением, настроен на требование подписки.
  • Создается Generated for Static Web Apps resource with default hostname: <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> Управление API подписка и область в продукт с тем же именем.
  • Политика входящего проверки jwt добавляется в продукт, чтобы разрешить только запросы, содержащие допустимый маркер доступа из связанного статического веб-приложения.
  • Связанное статическое веб-приложение настроено для включения первичного ключа подписки и допустимого маркера доступа при прокси-запросах к службе Управление API.

Важно!

Изменение политики validate-jwt или повторное создание первичного ключа подписки предотвращает прокси-запросы статического веб-приложения в службу Управление API. Не изменяйте или не удаляйте подписку или продукт, связанный со статическим веб-приложением.

Чтобы отменить связывание службы Azure Управление API со статического веб-приложения, выполните следующие действия.

  1. В портал Azure перейдите в статическое веб-приложение.

  2. Найдите среду, которую вы хотите отменить связь, и выберите имя службы Управление API.

  3. Выберите "Отменить связь".

После завершения процесса отмены связи запросы на маршруты, начинающиеся с/api/, больше не используются в службе Управление API.

Примечание.

Управление API продукт и подписка, связанные с связанным статическим веб-приложением, не удаляются автоматически. Их можно удалить из службы Управление API.

Устранение неполадок

Если API не связаны с продуктом Управление API, созданным для ресурса Статические веб-приложения, доступ к маршруту /api в статическом веб-приложении возвращает следующую ошибку из управления API.

{
  "statusCode": 401,
  "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}

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

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