Как создать простой прокси-сервер API

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Apigee Edge позволяет быстро предоставлять внутренние сервисы в виде API. Для этого создайте прокси-сервер API, который будет представлять собой фасад для бэкенд-службы, которую вы хотите сделать доступной. Вам нужно указать только сетевой адрес бэкенд-службы и некоторую информацию, которую Edge использует для создания прокси-сервера API, доступного разработчикам.

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

Посмотрите это видео, чтобы получить обзор процесса создания прокси-сервера API.

Как создать прокси-сервер API с помощью интерфейса

Проще всего создать прокси-сервер API с помощью мастера создания прокси.

Edge

Чтобы открыть мастер создания прокси-сервиса в интерфейсе Edge:

  1. Войдите в аккаунт на сайте apigee.com/edge.
  2. На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
  3. Нажмите + Прокси.

Откроется мастер создания прокси-сервера, который поможет вам создать и добавить минимальный набор функций в прокси-сервер API.

Первая страница мастера создания прокси-сервера, на которой предлагается выбрать обратный прокси-сервер, сервис SOAP, вариант "Нет цели" или пакет прокси-серверов, чтобы настроить мастер.

Новый интерфейс Edge (частное облако)

Чтобы открыть мастер создания прокси-сервиса в новом интерфейсе Edge:

  1. Войдите в интерфейс New Edge по адресу http://host:3001/edge, где host – это IP-адрес или DNS-имя хоста, на котором запущен интерфейс New Edge.
  2. На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
  3. Нажмите + Прокси.

Откроется мастер создания прокси-сервера, который поможет вам создать и добавить минимальный набор функций в прокси-сервер API.

Первая страница мастера создания прокси-сервера, на которой предлагается выбрать обратный прокси-сервер, сервис SOAP, вариант "Нет цели" или пакет прокси-серверов, чтобы настроить мастер.

На первой странице мастера можно создать прокси-сервер API на основе следующих источников:

Тип Описание
Обратный прокси-сервер (наиболее распространенный вариант)

Прокси-сервер API, который направляет входящие запросы в существующие HTTP-сервисы. Может быть JSON API или XML API. Подробнее о том, как создать обратный прокси для HTTP-сервиса…

Нажмите Использовать спецификацию OpenAPI, чтобы создать прокси-сервер на основе действительной спецификации OpenAPI. Подробнее о том, как использовать спецификации OpenAPI для создания прокси…

Сервис SOAP Прокси-сервер API, созданный на основе файла WSDL. Подробнее о том, как предоставить доступ к веб-сервису на основе SOAP в качестве прокси-сервера API…
Без цели

Прокси-сервер API без бэкенда API ("без цели"). Как и в случае с созданием обратного прокси для HTTP-сервиса, описанным выше, при определении сведений о прокси-сервере API не нужно указывать существующий API.

Нажмите Использовать спецификацию OpenAPI, чтобы создать прокси-сервер на основе действительной спецификации OpenAPI. Подробнее о том, как использовать спецификации OpenAPI для создания прокси…

Целевой сайт

Прокси-сервер API, который направляет запросы в приложение Node.js, развернутое в среде Hosted Targets. Подробнее о размещаемых целях…

Загрузка набора прокси Существующий пакет прокси-сервера API (например, один из примеров прокси-серверов API, доступных на GitHub). Подробнее о том, как импортировать прокси-сервер API из пакета прокси-сервера API.

В разделах ниже описано, как создать прокси-сервер API с помощью каждого из этих источников.

Как создать обратный прокси для сервиса HTTP

Edge создает обратные прокси на основе двух типов информации:

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

URL бэкенд-службы обычно представляет собой приложение с поддержкой сервисов, принадлежащее вашей организации. Также можно указать общедоступный API. API или сервис может быть под вашим контролем (например, внутреннее приложение для отдела кадров или приложение Rails в облаке) или сторонним (например, Twitter или Instagram).

Edge

  1. Откройте мастер создания прокси-сервера, как описано в разделе Создание прокси-сервера API с помощью интерфейса выше.
  2. В мастере создания прокси-сервера нажмите Обратный прокси-сервер (наиболее распространенный). Чтобы создать прокси-сервер на основе существующей спецификации OpenAPI, нажмите Использовать спецификацию OpenAPI. Подробнее об этом варианте рассказано в разделе Как использовать спецификации OpenAPI для создания прокси-серверов ниже.
  3. На странице Подробные сведения мастера введите следующую информацию.
    Поле Описание
    Название Название, которое будет показываться для вашего API. Укажите буквы, цифры, дефис (-) или символ подчеркивания (_).
    Базовый путь

    Фрагмент URI, который появляется после адреса http(s)://[host] прокси-сервера API. Edge использует URI базового пути, чтобы сопоставлять входящие запросы и направлять их нужному прокси API.

    NOTE Базовый путь прокси API по умолчанию имеет значение, указанное в поле Name, преобразованное в нижний регистр.

    После базового пути указываются дополнительные URL ресурсов. Ниже приведена полная структура URL, которую клиенты будут использовать для вызова вашего прокси API:

    https://[host]/base_path/conditional_flow_path

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

    Использование подстановочных знаков в базовых путях

    Используйте один или несколько подстановочных знаков /*/ в базовых путях прокси-сервера API, чтобы обеспечить совместимость прокси-сервера API с будущими версиями. Например, если базовый путь – /team/*/members, клиенты смогут вызывать https://[host]/team/blue/members и https://[host]/team/green/members, и вам не придется создавать новые прокси API для поддержки новых команд. Обратите внимание, что /**/ не поддерживается.

    Описание Описание API (необязательно).
    Целевой (существующий) API URL бэкенд-службы, которую вызывает этот прокси-сервер API.
  4. На странице Распространенные правила мастера настройте следующие параметры:
    • Требования к авторизации в разделе Безопасность: авторизация. Подробнее о том, как добавить защиту…
    • Поддержка совместного использования ресурсов между разными источниками (CORS) в разделе Безопасность: браузер. Подробнее о том, как добавить поддержку CORS…
    • Квоты для защиты бэкенд-службы от высокого трафика в разделе Quota. Подробнее о квотах… (Недоступно, если выбран вариант "Сквозная авторизация".)
    • Принудительное применение лимитов монетизации для организаций, в которых она включена, в разделе Монетизация. Подробнее о том, как применять ограничения монетизации к прокси API…
  5. На странице Virtual hosts (Виртуальные хосты) мастера выберите виртуальные хосты, с которыми будет связан прокси-сервер API при развертывании. Подробнее о виртуальных хостах…
  6. На странице Сводка при необходимости выберите среду развертывания и нажмите Создать и развернуть.

    Новый прокси-сервер API создан и развернут в выбранной среде.

  7. Нажмите Изменить прокси, чтобы открыть страницу с информацией о прокси API.

Новый интерфейс Edge (частное облако)

  1. Откройте мастер создания прокси-сервера, как описано в разделе Создание прокси-сервера API с помощью интерфейса выше.
  2. В мастере создания прокси-сервера нажмите Обратный прокси-сервер (наиболее распространенный). Чтобы создать прокси-сервер на основе существующей спецификации OpenAPI, нажмите Использовать спецификацию OpenAPI. Подробнее об этом варианте рассказано в разделе Как использовать спецификации OpenAPI для создания прокси-серверов ниже.
  3. На странице Подробные сведения мастера введите следующую информацию.
    Поле Описание
    Название Название, которое будет показываться для вашего API. Укажите буквы, цифры, дефис (-) или символ подчеркивания (_).
    Базовый путь

    Фрагмент URI, который появляется после адреса http(s)://[host] прокси-сервера API. Edge использует URI базового пути, чтобы сопоставлять входящие запросы и направлять их нужному прокси API.

    NOTE Базовый путь прокси API по умолчанию имеет значение, указанное в поле Name, преобразованное в нижний регистр.

    После базового пути указываются дополнительные URL ресурсов. Ниже приведена полная структура URL, которую клиенты будут использовать для вызова вашего прокси API:

    https://[host]/base_path/conditional_flow_path

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

    Использование подстановочных знаков в базовых путях

    Используйте один или несколько подстановочных знаков /*/ в базовых путях прокси-сервера API, чтобы обеспечить совместимость прокси-сервера API с будущими версиями. Например, если базовый путь – /team/*/members, клиенты смогут вызывать https://[host]/team/blue/members и https://[host]/team/green/members, и вам не придется создавать новые прокси API для поддержки новых команд. Обратите внимание, что /**/ не поддерживается.

    Описание Описание API (необязательно).
    Целевой (существующий) API URL бэкенд-службы, которую вызывает этот прокси-сервер API.
  4. На странице Распространенные правила мастера настройте следующие параметры:
    • Требования к авторизации в разделе Безопасность: авторизация. Подробнее о том, как добавить защиту…
    • Поддержка совместного использования ресурсов между разными источниками (CORS) в разделе Безопасность: браузер. Подробнее о том, как добавить поддержку CORS…
    • Квоты для защиты бэкенд-службы от высокого трафика в разделе Quota. Подробнее о квотах… (Недоступно, если выбран вариант "Сквозная авторизация".)
    • Принудительное применение лимитов монетизации для организаций, в которых она включена, в разделе Монетизация. Подробнее о том, как применять ограничения монетизации к прокси API…
  5. На странице Virtual hosts (Виртуальные хосты) мастера выберите виртуальные хосты, с которыми будет связан прокси-сервер API при развертывании. Подробнее о виртуальных хостах…
  6. На странице Сводка при необходимости выберите среду развертывания и нажмите Создать и развернуть.

    Новый прокси-сервер API создан и развернут в выбранной среде.

  7. Нажмите Изменить прокси, чтобы открыть страницу с информацией о прокси API.

Импорт прокси-сервера API из пакета прокси-сервера API

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

Посмотрите видео о том, как создать и импортировать прокси-сервер API из пакета прокси-сервера API.

Edge

Чтобы импортировать прокси-серверы API из пакета прокси-серверов API:

  1. Откройте мастер создания прокси-сервера, как описано в разделе Создание прокси-сервера API с помощью интерфейса выше.
  2. Нажмите Загрузить пакет прокси.
  3. На странице Загрузить пакет прокси в мастере прокси укажите следующую информацию.

    Поле Описание
    ZIP-архив ZIP-файл, содержащий конфигурацию прокси API. Перетащите файл или нажмите кнопку, чтобы выбрать его.
    Название Название, которое будет показываться для вашего API. По умолчанию используется название ZIP-файла без расширения.
  4. Нажмите Далее.
  5. На странице Summary (Сводка) выберите среду развертывания (если нужно) и нажмите Create and deploy (Создать и развернуть)
    Появится сообщение о том, что новый прокси-сервер API успешно создан.
  6. Нажмите Изменить прокси, чтобы открыть страницу с информацией о прокси API.

Новый интерфейс Edge (частное облако)

Чтобы импортировать прокси-серверы API из пакета прокси-серверов API:

  1. Откройте мастер создания прокси-сервера, как описано в разделе Создание прокси-сервера API с помощью интерфейса выше.
  2. Нажмите Загрузить пакет прокси.
  3. На странице Загрузить пакет прокси в мастере прокси укажите следующую информацию.

    Поле Описание
    ZIP-архив ZIP-файл, содержащий конфигурацию прокси-сервера API. Перетащите файл или нажмите кнопку, чтобы выбрать его.
    Название Название, которое будет показываться для вашего API. По умолчанию используется название ZIP-файла без расширения.
  4. Нажмите Далее.
  5. На странице Сводка при необходимости выберите среду развертывания и нажмите Создать и развернуть.
    Появится подтверждение, что новый прокси-сервер API успешно создан.
  6. Нажмите Изменить прокси, чтобы открыть страницу с информацией о прокси API.

Как предоставить доступ к веб-сервису на основе SOAP через прокси API

В мастере создания прокси-сервера нажмите SOAP Service (Сервис SOAP) и следуйте инструкциям, чтобы создать сквозной или REST-прокси для сервиса SOAP. Подробнее о том, как предоставить доступ к сервису SOAP в качестве прокси-сервера API…

Добавление защиты

На странице Общие правила мастера создания прокси-сервера выберите тип авторизации безопасности, который вы хотите добавить. В таблице ниже приведены доступные варианты.

Авторизация безопасности Описание
Ключ API Добавляет простую проверку ключа API в прокси-сервер API, который вы определяете. В ответ платформа API добавляет в ваш прокси-сервер API правила VerifyAPIKey и AssignMessage. Правило VerifyAPIKey проверяет ключи API, предоставленные запрашивающими приложениями. Правило AssignMessage удаляет ключ API, указанный в вызове API в качестве параметра запроса, из запроса, пересылаемого на внутренний сервер.
OAuth 2.0 Добавляет в прокси-сервер API аутентификацию на основе OAuth 2.0. Apigee Edge автоматически добавляет в прокси-сервер API два правила: одно для проверки токена доступа, а другое – для удаления токена доступа из сообщения перед его пересылкой в бэкенд-службу. Чтобы узнать, как получить токен доступа, ознакомьтесь с информацией о OAuth.
Пропуск (без авторизации) Авторизация не требуется. Запросы передаются в серверную часть без проверок безопасности в Apigee Edge.

Добавлена поддержка CORS

CORS (совместное использование ресурсов между разными источниками) – это стандартный механизм, который позволяет веб-браузеру отправлять прямые запросы в другой домен. Стандарт CORS определяет набор HTTP-заголовков, которые веб-браузеры и серверы используют для реализации междоменной связи.

Вы можете добавить поддержку CORS в свой API, выбрав Добавить заголовки CORS на странице Общие правила мастера создания прокси.

Подробную информацию о поддержке CORS, в том числе о том, как добавить поддержку предварительных запросов CORS в прокси-сервер, см. в статье Как добавить поддержку CORS в прокси-сервер API.

Как создавать прокси с помощью спецификаций OpenAPI

В этом разделе рассматривается вариант "Использовать OpenAPI", который позволяет создавать на основе спецификации OpenAPI следующие типы прокси API: обратный, Node.js или без целевого сервиса.

Что такое спецификация OpenAPI?

Логотип Open API Initiative"Инициатива Open API (OAI) направлена на создание, развитие и продвижение нейтрального к поставщикам формата описания API на основе спецификации Swagger". Дополнительную информацию об инициативе Open API можно найти на сайте https://openapis.org.

Спецификация OpenAPI использует стандартный формат для описания REST API. Спецификация OpenAPI написана в формате JSON или YAML и может быть прочитана как машиной, так и человеком. Спецификация описывает такие элементы API, как базовый путь, пути и глаголы, заголовки, параметры запроса, операции, типы контента, описания ответов и т. д. Кроме того, спецификация OpenAPI обычно используется для создания документации по API.

Ниже приведен фрагмент спецификации OpenAPI, в котором описан фиктивный целевой сервис Apigee http://mocktarget.apigee.net. Дополнительную информацию можно найти на странице https://github.com/apigee/api-platform-samples/tree/master/default-proxies/helloworld/openapi.

openapi: 3.0.0
info:
  description: OpenAPI Specification for the Apigee mock target service endpoint.
  version: 1.0.0
  title: Mock Target API
paths:
  /:
    get:
      summary: View personalized greeting
      operationId: View a personalized greeting
      description: View a personalized greeting for the specified or guest user.
      parameters:
        - name: user
          in: query
          description: Your user name.
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Success
  /help:
    get:
      summary: Get help
      operationId: Get help
      description: View help information about available resources in HTML format.
      responses:
        "200":
          description: Success
...

С помощью мастера создания прокси-сервера можно импортировать спецификацию OpenAPI и использовать ее для создания прокси-сервера API. После создания прокси-сервера вы можете использовать интерфейс Edge для его дальнейшей разработки, добавляя правила, реализуя собственный код и т. д. – как и в случае с любым другим прокси-сервером Edge.

Как создать прокси-сервер API на основе спецификации OpenAPI

Создавайте прокси API на основе спецификации OpenAPI. Всего за несколько кликов вы получите прокси-сервер API с автоматически созданными путями, параметрами, условными потоками и целевыми конечными точками. Затем вы можете добавить такие функции, как безопасность OAuth, ограничение частоты запросов и кеширование.

В мастере создания прокси-сервера нажмите Use OpenAPI Spec (Использовать спецификацию OpenAPI) и следуйте инструкциям, чтобы создать обратный прокси-сервер или прокси-сервер без цели на основе спецификации OpenAPI. Подробнее о том, как создать прокси-сервер API на основе спецификации OpenAPI…

Посмотрите видео о том, как создать прокси-сервер API на основе спецификации OpenAPI.

Как обновить потоки в прокси-сервере API с помощью спецификации OpenAPI

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

Чтобы обновить потоки в прокси-сервере API с помощью спецификации OpenAPI, выполните следующие действия:

  1. Добавьте новые пути к ресурсам в спецификацию OpenAPI. Подробнее о том, как изменить существующую спецификацию OpenAPI…
  2. Откройте прокси API в интерфейсе и нажмите на вкладку Разработка.
  3. В навигаторе нажмите + рядом с конечной точкой прокси, которую хотите обновить.
    Откроется диалоговое окно "Новый условный поток".
  4. Нажмите Из OpenAPI, если этот вариант ещё не выбран.
    Если в спецификации OpenAPI есть ресурсы, для которых в прокси-сервере API нет соответствующего условного потока, они будут перечислены в диалоговом окне, как показано на рисунке ниже. Ресурсы, которые не представлены в виде потоков в текущем прокси API. В этом примере используются пути /loveapis, /ip, /json и /xml.
  5. Выберите ресурсы, для которых вы хотите добавить условный поток.
  6. Нажмите Добавить.

Условные потоки будут добавлены в ваш прокси-сервер API.

Создание новой версии прокси-сервера API

Создайте новую версию прокси-сервера API, как описано ниже.

Edge

Чтобы создать новую версию прокси-сервера API с помощью интерфейса Edge, выполните следующие действия:

  1. Войдите в аккаунт на сайте apigee.com/edge.
  2. На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
  3. Нажмите на прокси-сервер API, который хотите скопировать.
  4. Выберите Проект > Сохранить как новую версию.

Новый интерфейс Edge (частное облако)

Чтобы создать новую версию прокси-сервера API с помощью нового интерфейса Edge, выполните следующие действия:

  1. Войдите в интерфейс New Edge по адресу http://host:3001/edge, где host – это IP-адрес или DNS-имя хоста, на котором запущен интерфейс New Edge.
  2. На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
  3. Нажмите на прокси-сервер API, который хотите скопировать.
  4. Выберите Проект > Сохранить как новую версию.

Копирование прокси-сервера API

Скопируйте существующий прокси-сервер API в новый прокси-сервер API, как описано ниже.

Edge

Чтобы скопировать прокси-сервер API с помощью интерфейса Edge:

  1. Войдите в аккаунт на сайте apigee.com/edge.
  2. На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
  3. Нажмите на прокси-сервер API, который хотите скопировать.
  4. Выберите Project > Save as New API Proxy (Проект > Сохранить как новый прокси API).
  5. В диалоговом окне "Сохранить как новый прокси-сервер" введите название нового прокси-сервера API.
  6. Нажмите Добавить.

Новый интерфейс Edge (частное облако)

Чтобы скопировать прокси-сервер API с помощью нового интерфейса Edge:

  1. Войдите в интерфейс New Edge по адресу http://host:3001/edge, где host – это IP-адрес или DNS-имя хоста, на котором запущен интерфейс New Edge.
  2. На панели навигации слева выберите Develop > API Proxies (Разработка > Прокси API).
  3. Нажмите на прокси-сервер API, который хотите скопировать.
  4. Выберите Project > Save as New API Proxy (Проект > Сохранить как новый прокси API).
  5. В диалоговом окне "Сохранить как новый прокси-сервер" введите название нового прокси-сервера API.
  6. Нажмите Добавить.

Создание резервной копии прокси-сервера API

Вы можете создать резервную копию существующего прокси-сервера API в виде набора XML-файлов в пакете прокси-сервера API. После экспорта в пакет вы можете импортировать прокси-сервер API в новый прокси-сервер, как описано в разделе Импорт прокси-сервера API из пакета прокси-сервера API выше. Подробнее о том, как скачать прокси API…

Как создать прокси-сервер API с помощью API

Чтобы создать прокси-сервер API с помощью API, ознакомьтесь с API прокси-серверы API.