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

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

Что вы узнаете

Из этого руководства вы узнаете:

  • Создайте прокси-сервер API Edge на основе спецификации OpenAPI.
  • Вызовите прокси-сервер API с помощью cURL.
  • Как добавить правила в условный поток
  • Проверьте вызов правил с помощью cURL.

В этом руководстве рассказывается, как создать прокси-сервер API Edge на основе спецификации OpenAPI с помощью интерфейса управления Apigee Edge. Когда вы вызываете прокси-сервер API с помощью HTTP-клиента, например cURL, прокси-сервер API отправляет запрос в сервис имитации целевого сервиса Apigee.

Об инициативе Open API

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

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

О сервисе Apigee Mock Target Service

Целевой сервис Apigee, используемый в этом руководстве, размещен в Apigee и возвращает простые данные. Ключ API или токен доступа не требуются. Вы можете открыть его в браузере. Чтобы попробовать, нажмите на следующие ссылки:

http://mocktarget.apigee.net

Целевой сервис возвращает приветствие Hello, guest!.

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

http://mocktarget.apigee.net/help

Что вам понадобится

  • Аккаунт Apigee Edge. Если у вас нет аккаунта, зарегистрируйтесь, следуя инструкциям в разделе Создание аккаунта Apigee Edge.
  • Спецификация OpenAPI. В этом руководстве вы будете использовать mocktarget.yamlспецификацию OpenAPI, в которой описан сервис имитации целевого сервиса Apigee, http://mocktarget.apigee.net. Подробнее о том, https://github.com/apigee/api-platform-samples/tree/master/default-proxies/helloworld/openapi…
  • cURL, установленный на вашем компьютере, чтобы выполнять вызовы API из командной строки, или веб-браузер.

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

Edge

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

  1. Войдите в аккаунт на странице https://apigee.com/edge.
  2. В главном окне нажмите API Proxies (Прокси API).

    Вы также можете выбрать Develop > API Proxies (Разработка > Прокси API) на панели навигации слева.

    Нажмите API Proxies (Прокси API) на целевой странице.

  3. Нажмите + Прокси.
    Как добавить прокси-сервер API
  4. В мастере создания прокси-сервера нажмите Use OpenAPI Spec (Использовать спецификацию OpenAPI) для шаблона Reverse proxy (most common) (Обратный прокси-сервер (наиболее распространенный)).
    Как создать тип прокси-сервера
  5. Нажмите Импортировать из URL и введите следующие данные:
    • URL спецификации OpenAPI. Укажите путь к необработанному контенту на GitHub для спецификации OpenAPI в поле URL.
      https://raw.githubusercontent.com/apigee/api-platform-samples/master/default-proxies/helloworld/openapi/mocktarget3.0.yaml
    • Название спецификации. Название спецификации OpenAPI, например Целевой объект для тестирования.

      Это название используется для хранения спецификации OpenAPI в хранилище спецификаций. Подробнее о том, как управлять спецификациями…

  6. Нажмите Импортировать.

    Откроется страница "Сведения" мастера создания прокси. Поля заполняются автоматически на основе значений, заданных в спецификации OpenAPI, как показано на следующем

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

    Поле Описание По умолчанию
    Название Название прокси-сервера API. Пример: Mock-Target-API. Свойство title из спецификации OpenAPI, в котором пробелы заменены на дефисы.
    Базовый путь Компонент пути, который уникальным образом идентифицирует этот прокси-сервер API в организации. Общедоступный URL этого прокси API состоит из названия вашей организации, среды, в которой развернут прокси API, и этого базового пути. Пример: http://myorg-test.apigee.net/mock-target-api Содержимое поля Название преобразовано в нижний регистр.
    Описание Описание прокси-сервера API. description из спецификации OpenAPI
    Целевой API (существующий) Целевой URL, вызванный от имени этого прокси-сервера API. Можно использовать любой URL, доступный в интернете. Пример: http://mocktarget.apigee.net servers из спецификации OpenAPI

    Ниже приведен фрагмент спецификации 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
    ...
    servers:
      - url: http://mocktarget.apigee.net
      - url: https://mocktarget.apigee.net
    ...
    
  7. Измените поле Описание следующим образом: API proxy for the Apigee mock target service endpoint..
  8. Нажмите Далее.
  9. На странице Общие правила в разделе "Безопасность: авторизация" убедитесь, что выбран вариант Сквозная передача (без авторизации), и нажмите Далее:

    На странице "Общие правила" выбран вариант "Пропускать (без авторизации)"

  10. На странице "Потоки" убедитесь, что выбраны все операции. Как создать поток прокси-сервера
  11. Нажмите Далее.
  12. На странице Виртуальные хосты выберите default и secure и нажмите Далее.
    На странице "Виртуальные хосты" выбраны варианты default и secure.
  13. На странице Сводка убедитесь, что в разделе Необязательное развертывание выбрана среда Тестирование, и нажмите Создать и развернуть:

    Apigee создаст новый прокси-сервер API и развернет его в тестовой среде:

  14. Нажмите Edit proxy (Изменить прокси), чтобы открыть страницу обзора для прокси API.
    Сводка по прокси Mock Target API

Классическая версия Edge (частное облако)

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

  1. Войдите в аккаунт на странице https://apigee.com/edge.
  2. В главном окне нажмите API Proxies (Прокси API).

    Вы также можете выбрать Develop > API Proxies (Разработка > Прокси API) на панели навигации слева.

  3. Нажмите + Прокси.
    Как добавить прокси-сервер API
  4. В мастере создания прокси-сервера выберите Обратный прокси-сервер (наиболее распространенный) и нажмите Использовать OpenAPI.
    Как создать тип прокси-сервера
  5. Нажмите Импортировать из URL, введите название спецификации OpenAPI и укажите путь к необработанному контенту на GitHub для спецификации OpenAPI в поле URL:

    https://raw.githubusercontent.com/apigee/api-platform-samples/master/default-proxies/helloworld/openapi/mocktarget.yaml
  6. Нажмите Выбрать.
  7. Нажмите Далее.

    Откроется страница "Сведения" мастера создания прокси. Поля заполняются автоматически на основе значений, заданных в спецификации OpenAPI, как показано на рисунке ниже.

    Сведения о сборке прокси-сервера

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

    Поле Описание По умолчанию
    Название прокси-сервера Название прокси-сервера API. Пример: Mock-Target-API. Свойство title из спецификации OpenAPI, в котором пробелы заменены на дефисы.
    Базовый путь прокси-сервера Компонент пути, который уникальным образом идентифицирует этот прокси-сервер API в организации. Общедоступный URL этого прокси API состоит из названия вашей организации, среды, в которой развернут прокси API, и этого базового пути. Пример: http://myorg-test.apigee.net/mock-target-api Содержимое поля Название преобразовано в нижний регистр.
    Существующий API Целевой URL, вызванный от имени этого прокси-сервера API. Можно использовать любой URL, доступный через открытый интернет. Пример: http://mocktarget.apigee.net servers из спецификации OpenAPI
    Описание Описание прокси-сервера API. description из спецификации OpenAPI

    Ниже приведен фрагмент спецификации 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
    ...
    servers:
      - url: http://mocktarget.apigee.net
      - url: https://mocktarget.apigee.net
    ...
    
  8. Измените поле Описание следующим образом: API proxy for the Apigee mock target service endpoint..
  9. Нажмите Далее.
  10. На странице "Потоки" убедитесь, что выбраны все операции. Как создать поток прокси-сервера
  11. Нажмите Далее.
  12. На странице "Безопасность" выберите Пропустить (нет) в качестве параметра безопасности и нажмите Далее.
  13. На странице "Виртуальные хосты" убедитесь, что выбраны все виртуальные хосты, и нажмите Далее.
  14. На странице сборки убедитесь, что выбрана тестовая среда test, и нажмите Build and Deploy (Собрать и развернуть).
  15. На странице "Сводка" вы увидите подтверждение того, что новый прокси-сервер API был успешно создан и развернут в тестовой среде.
    Как создать сводку прокси-сервера
  16. Нажмите Mock-Target-API, чтобы открыть страницу Overview (Обзор) для прокси API.
    Сводка по прокси Mock Target API

Поздравляем! Вы создали прокси-сервер API на основе спецификации OpenAPI. Затем вы проверите, как она работает.

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

Вы можете протестировать Mock-Target-API API с помощью cURL или веб-браузера.

В окне терминала выполните следующую команду cURL. Замените название организации в URL.

curl http://<org_name>-test.apigee.net/mock-target-api

Ответ

Вы увидите следующий ответ:

Hello, Guest!        

Так держать! Вы создали простой прокси-сервер API на основе спецификации OpenAPI и протестировали его.

Как добавить правило преобразования XML в JSON

Затем добавьте правило XML в JSON в условный поток View XML Response, который был создан автоматически при создании прокси-сервера API на основе спецификации OpenAPI. Правило преобразует ответ XML целевого сервиса в ответ JSON.

Сначала вызовите API, чтобы сравнить результаты с теми, которые будут получены после добавления правила. В окне терминала выполните следующую команду cURL. Вы вызываете ресурс /xml целевого сервиса, который изначально возвращает простой блок XML. Замените название организации в URL.

curl http://<org_name>-test.apigee.net/mock-target-api/xml

Ответ

Вы увидите следующий ответ:

<root> 
  <city>San Jose</city> 
  <firstName>John</firstName> 
  <lastName>Doe</lastName> 
  <state>CA</state> 
</root>

Теперь давайте сделаем что-нибудь, что преобразует ответ XML в JSON. Добавьте правило XML в JSON в условный поток View XML Response в прокси-сервер API.

  1. Нажмите на вкладку Develop (Разработка) в правом верхнем углу страницы Mock-Target-API Overview (Обзор Mock-Target-API) в интерфейсе Edge.
    Вкладка &quot;Разработчик&quot;
  2. На панели навигации слева в разделе Proxy Endpoints > default нажмите на условный поток View XML Response.
    Выберите &quot;Посмотреть XML-ответ&quot;.
  3. Нажмите на нижнюю кнопку +Шаг, соответствующую Ответу для потока.
    Выберите &quot;+Шаг&quot;.
    Откроется диалоговое окно "Добавить шаг" со списком всех правил, которые можно добавить, разбитым по категориям.
  4. Прокрутите страницу до категории "Медиация" и выберите XML в JSON.
    Диалоговое окно &quot;Добавить шаг&quot;
  5. Оставьте значения по умолчанию в полях Отображаемое название и Название.
  6. Нажмите Добавить. К ответу применяется правило XML в JSON.Правило XML в JSON в потоке
  7. Нажмите Сохранить.

Теперь, когда вы добавили правило, снова вызовите API с помощью cURL. Обратите внимание, что вы по-прежнему вызываете тот же ресурс /xml. Целевой сервис по-прежнему возвращает блок XML, но теперь политика в прокси-сервере API будет преобразовывать ответ в JSON. Позвони:

curl http://<org_name>-test.apigee.net/mock-target-api/xml

Обратите внимание, что ответ в формате XML преобразуется в JSON:

{"root":{"city":"San Jose","firstName":"John","lastName":"Doe","state":"CA"}}

Поздравляем! Вы успешно протестировали выполнение правила, добавленного в условный поток.