Архитекторские решения без сервера в Azure (2 серии деталей)
Давайте установим шлюз API, используя службу управления Azure API с хорошей архитектурой.
Шлюз API расположен между вашими API и Интернетом. Вы можете контролировать, как API выставлены или ограничивают использование на подписку через портал Azure.
Почему я использовал службу управления AZURE API?
Это родная Azure SaaS (программное обеспечение как услугу), которое приносит хорошие плюсы;
- Документация API.
- Скорость ограничения доступа
- Мониторинг здоровья
- Современные форматы, такие как JSON
- Подключения к любому API
- Аналитика
- Безопасность
- Встроенный кэширование
- Трассировка сети
Есть ли компромисс?
Да, Политика автоматического выключателя еще не реализован. Вы можете создать свой собственный шлюз API с автоматическим выключателем, используя сторонние библиотеки, такие как Оцелот и Полли с Качество обслуживания Настроен, но стоит ли пойти в Паасу (платформу как услугу) вместо SaaS?
Настройка службы управления API
- Войдите в Azure Portal Отказ
- Создайте ресурс через Интеграция , а потом Управление API Отказ
- Дайте глобально уникальное имя вашему ресурсу.
- Выберите Расход (99,9Ссловие,%) Как ценовой уровень, потому что этот неверный план, намного быстрее создать для специального тестирования.
- Нажмите Создать Отказ
- Развертывание начнется, и он может занять несколько минут.
Когда развертывание будет завершено, вы получите электронное письмо с уведомлением по адресу, которое вы предоставили в качестве администратора. Как только он развернут, мы импортируем нашу первую API.
Импортировать API
- Войдите в Azure Portal Отказ
- Перейти к Все ресурсы А затем выберите свой шлюз API.
- Под Управление API нажмите Апис
- Выберите свою спецификацию. Если вы используете Swashbuckle Библиотека в вашем API, что означает, что у вас уже есть Спецификация Openapi Отказ
- На Создать из спецификации Openapi Страница, вставьте чванство JSON URL вашего API. Другие поля будут заполнены в соответствии с вашим API.
- Нажмите Создать Отказ
Теперь вы можете проверить ворота через Тест Вкладка на странице сведения о API.
Подписка похожа на аутентификацию клиента с открытым ключом, который может быть передан через заголовки или в строке запроса. Подписка может быть выделена для всех API, одного API или группы API (называется продуктом).
Уникальные подписки могут быть восстановлены в любое время. Каждая подписка имеет две клавиши, основной и вторичный, чтобы избежать простоя.
Имя заголовка по умолчанию — OCP-APIM-APIM-KEY
и строка запроса по умолчанию — Подписка-ключ
Отказ Если ключ не передается в заголовке или в качестве строки запроса в URL, вы получите 401. Доступ Отрицал Ответ от шлюза API.
В управлении Azure API администраторы могут использовать политики для изменения поведения API через конфигурацию. Политики выполняются в четыре разных времена:
- Входящий : Эти политики выполняются, когда запрос получен от клиента.
- Backend : Эти политики выполняются до запроса на управляемое API.
- Исходящий : Эти политики выполняются до того, как ответ отправляется клиенту.
- По ошибке : Эти политики выполняются при повышении исключения.
Существует еще одна область применения в дополнение к областям подписки для политики, и она является оперативной политикой. Мы можем определить порядок политики. Если мы размещаем <База/>
Тег до политики, которая означает, что более высокие политики будут применены первыми и наоборот.
Обычно используемые политики
- Проверьте заголовок HTTP
- Ограничить скорость вызовов по подписке
- Ограничить абонент IP
- Аутентифицировать
- Рост
- Jsonp.
- Конвертировать XML в JSON
- Переписать URL
Политика кэша
Кэшируя скомпилированные ответы, мы можем уменьшить время обработки в наших API и отвечать быстрее. Мы можем добавить исходящую политику, чтобы кэшировать ответы и входящую политику, чтобы проверить, есть ли кэшированный ответ для текущего запроса. Вы можете увидеть эти две политики в примере ниже, который использует Вар - запрос-параметр
Теги для хранения отдельных ответов на идентификатор в строке запроса:
id
варьируемое разработчик
Атрибут — это разделение ответов в соответствии с ключом подписки.
Как вы уже можете заметить, тип кэширования для этого примера является внутренним. Мы также можем использовать внешнюю кэширование.
Добавить внешний кэш
- Создайте кэш Azure для Redis Resource.
- Перейдите в свой сервис управления API и нажмите Внешний кэш под Настройки а затем нажмите + Добавить Отказ
- Выберите свой экземпляр Cache Redis и местоположение для использования. Другие поля будут заполнены.
- Нажмите Сохранить Отказ
- Перейти к API под Управление API Затем выберите API и щелкните карандаш рядом с кэш-поиск редактировать политику.
- Изменить тип кэширования из Внутренний к Внешний
Вы можете проверить свой API в Тест Вкладка, чтобы увидеть, если она дает неизменные результаты.
Удалить ненужную информацию из заголовка ответов
ASP.NET Добавить X-Powered-by: asp.net
Заголовок к нашим API по умолчанию, но это может позволить злоумеренному пользователю попытаться использовать любые ошибки, известные для технологического стека. Мы можем удалить этот заголовок из ответа, добавив Набор-заголовок
политика на выезд, как в примере ниже;
Заменить контент с помощью политики преобразования
Если мы построим API с Stateoas Ограничение, это означает, что у нас есть ссылки в ответах. Поскольку шлюз переопределяет URL-адреса, нам может потребоваться заменить ссылки в тело ответа. Мы можем сделать это, добавив
Тег на
элемент, как ниже;
Ограничить скорость вызовов по подписке
Если мы разместим Оценка - по-ключей
тег внутри Входящий
Элемент, это ограничит скорость вызовов по подписке. Подписка может вызвать эту API 10 раз за 60 секунд, и только успешные ответы считаются.
Проверьте сертификат, чтобы разрешить запросы
Если мы хотим использовать аутентификацию сертификата в нашем шлюзе API, мы можем проверить его по входящей политике.
- Под Настройки нажмите Пользовательские домены В вашей службе управления API.
- Включение Да для Запросить сертификат клиента опция, а затем нажмите Сохранить Отказ
- Заменить
<Входящие>
Узел файла политики со следующим XML при заменеЖелаемый отпечаток
часть с отпечатками вашего сертификата;
Пожалуйста, напишите политики, которые вы найдете полезными в комментариях.
Архитекторские решения без сервера в Azure (2 серии деталей)
Оригинал: «https://dev.to/olcay/architect-azure-api-management-service-24hd»