Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни управления API
В этом руководстве вы узнаете о настройке политик для защиты или преобразования API. Политики — это коллекция инструкций, которые выполняются последовательно в запросе или ответе API, изменяющего поведение API.
Tip
Команды API могут использовать эту функцию в рабочих областях. Рабочие области предоставляют изолированный административный доступ к API и собственные среды выполнения API.
Например, может потребоваться задать пользовательский заголовок ответа. Или защитите внутренний API, настроив политику ограничения скорости, чтобы API не перепользовался разработчиками. Эти примеры — это простое введение в политики Управление API. Дополнительные параметры политики см. в статье Политики Управления API.
Примечание.
По умолчанию служба "Управление API" настраивает глобальную политику forward-request
. Политика forward-request
необходима для того, чтобы шлюз выполнил запрос к внутренней службе.
В этом руководстве описано следующее:
- Изменение API для задания пользовательского заголовка ответа
- защита API путем добавления политик ограничения скорости (регулирования);
- проверка преобразований.
Предварительные условия
- Ознакомьтесь с терминологией службы управления API в Azure.
- Ознакомьтесь с концепцией использования политик в службе управления API в Azure.
- Complete the following quickstart: Create an Azure API Management instance. В этом руководстве мы рекомендуем использовать один из классических или уровней v2, например, уровень "Разработчик" или уровень "Базовый v2". Уровень потребления не поддерживает все политики, используемые в этом руководстве.
- Также выполните задачи из руководства по импорту и публикации первого API.
Go to your API Management instance
In the Azure portal, search for and select API Management services:
On the API Management services page, select your API Management instance:
Проверка исходного ответа
Чтобы увидеть исходный ответ, сделайте следующее.
- In your API Management service instance, select APIs.
- Выберите Swagger Petstore из списка API.
- Выберите вкладку Тест в верхней части экрана.
- Выберите операцию GET Finds pets by status и, при необходимости, выберите другое значение параметра status запроса. Выберите Отправить.
Исходный ответ API должен выглядеть так:
Преобразуйте API для добавления настраиваемого заголовка ответа
Управление API включает несколько политик преобразования, которые можно использовать для изменения полезных данных запроса или ответа, заголовков или кодов состояния. В этом примере вы задаете пользовательский заголовок ответа в ответе API.
Настройка политики преобразования
В этом разделе показано, как настроить заголовок ответа с помощью политики set-header
. Здесь вы используете редактор политики на основе форм, упрощающий настройку политики.
Выберите Swagger Petstore>Проектирование>Все операции.
В разделе Outbound processing (Обработка исходящих данных) выберите + Add policy (Добавить политику).
В окне Add outbound policy (Добавление политики исходящего трафика) выберите Set headers (Задать заголовки).
Чтобы настроить политику заголовков Set, сделайте следующее:
- В разделе "Имя" введите Custom.
- В разделе "Значение" выберите + Добавить значение. Введите "Мое настраиваемое значение".
- Выберите Сохранить.
После настройки элемент политики set-header появится в разделе обработки исходящего трафика.
Защита API с помощью добавления политики ограничения скорости (регулирование)
В этом разделе показано, как добавить защиту в API серверной части, настроив ограничения частоты запросов, чтобы разработчики не злоупотребляли API. В этом примере показано, как настроить rate-limit-by-key
политику с помощью редактора кода. В этом примере ограничение равно трем вызовам в 15 секунд. Через 15 секунд разработчик может снова повторять вызов API.
Примечание.
Эта политика не поддерживается на уровне потребления.
Выберите Swagger Petstore>Проектирование>Все операции.
В разделе Inbound processing (Обработка исходящих запросов) выберите значок редактора кода (</>).
Поместите курсор на элемент
<inbound>
на пустой строке. Затем выберите Show snippets (Показать фрагменты) в правом верхнем углу экрана.На панели справа в разделе Access restriction policies (Политики ограничения доступа) выберите Limit call rate per key (Ограничить частоту вызовов для одного ключа).
Элемент
<rate-limit-by-key />
будет вставлен в позицию, обозначенную курсором.Замените код
<rate-limit-by-key />
в элементе<inbound>
следующим фрагментом: Затем выберите Сохранить.<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
проверка преобразований.
Если на этом этапе взглянуть на код в редакторе, ваши политики будут выглядеть так:
<policies>
<inbound>
<rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
<base />
</inbound>
<outbound>
<set-header name="Custom" exists-action="override">
<value>"My custom value"</value>
</set-header>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Оставшаяся часть этого раздела посвящена проверке преобразований политики, которые вы задали в этой статье.
Проверка пользовательского заголовка ответа
Select Swagger Petstore>Test.
Выберите операцию GET Finds pets by status и, при необходимости, выберите другое значение параметра status запроса. Выберите Отправить.
Как видно, добавляется пользовательский заголовок ответа:
Test the rate limit (throttling)
Select Swagger Petstore>Test.
Select the GET Finds Pets by Status operation. Выберите Отправить несколько раз подряд.
После отправки слишком большого количества запросов в настроенный период вы получите ответ на 429 слишком много запросов .
Подождите не менее 15 секунд, а затем выберите Отправить снова. Теперь вы должны получить ответ 200 — ОК.
Воспользуйтесь помощью Copilot
Получите помощь по искусственному интеллекту от Copilot, чтобы создать и изменить определения политики управления API. С помощью Copilot создайте и обновите политики, соответствующие определенным требованиям, не зная синтаксис XML, и получите объяснения существующих политик. Copilot также может помочь вам перевести политики, которые могли быть настроены в других решениях по управлению API.
- Microsoft Copilot in Azure - Offers policy authoring assistance with natural language prompts in the Azure portal. Создайте политики в редакторе политик управления API и попросите Copilot объяснить разделы политики.
- GitHub Copilot for Azure in VS Code - Provides policy authoring assistance in Visual Studio Code, accelerating policy configuration when you use the Azure API Management Extension for Visual Studio Code. Prompt Copilot Chat or Copilot Edits (preview) with natural language to create and refine policy definitions in place.
Example prompt:
Generate a policy that adds an Authorization header to the request with a Bearer token.
Copilot работает на основе искусственного интеллекта, поэтому возможны сюрпризы и ошибки. For more information, see Copilot general use FAQs.
Итоги
Из этого руководства вы узнали, как:
- Изменение API для задания пользовательского заголовка ответа
- защита API путем добавления политик ограничения скорости (регулирования);
- проверка преобразований.
Следующие шаги
Перейдите к следующему уроку:
Monitor your API (Мониторинг API)