Создайте прокси-сервер API из спецификации OpenAPI.

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

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

В этом уроке вы научитесь:

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

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

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

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

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

О сервисе имитации целей Apigee

Сервис Apigee mock target, используемый в этом руководстве, размещен на сервере Apigee и возвращает простые данные. Для его работы не требуется ключ API или токен доступа. Более того, вы можете получить к нему доступ через веб-браузер. Попробуйте, перейдя по следующей ссылке:

http://mocktarget.apigee.net

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

Для получения информации о полном наборе API, поддерживаемых службой имитации целевого объекта, нажмите на следующую ссылку:

http://mocktarget.apigee.net/help

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

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

Создайте API-прокси.

Край

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

  1. Войдите на сайт https://apigee.com/edge .
  2. В главном окне нажмите «API-прокси».

    В качестве альтернативы вы можете выбрать «Разработка» > «API-прокси» в левой панели навигации.

    Нажмите «API-прокси» на целевой странице.

  3. Click + Proxy .
    Добавить API-прокси
  4. В мастере создания прокси-сервера выберите «Использовать спецификацию OpenAPI» для шаблона обратного прокси (наиболее распространенный) .
    Создать тип прокси
  5. Нажмите «Импорт из URL» и введите следующую информацию:
    • URL спецификации OpenAPI : Путь к исходному содержимому на GitHub для спецификации OpenAPI в поле URL :
      https://raw.githubusercontent.com/apigee/api-platform-samples/master/default-proxies/helloworld/openapi/mocktarget3.0.yaml
    • Название спецификации : Название спецификации OpenAPI, например, Mock Target .

      Это имя используется для хранения спецификации 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. На странице «Виртуальные хосты» выберите «по умолчанию» и «безопасный» , затем нажмите «Далее» .
    На странице «Виртуальные хосты» выбраны параметры «по умолчанию» и «безопасный».
  13. На странице «Сводка» убедитесь, что в разделе «Дополнительное развертывание» выбрана тестовая среда, и нажмите «Создать и развернуть» :

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

  14. Нажмите «Редактировать прокси» , чтобы отобразить страницу обзора API-прокси.
    Краткое описание прокси-сервера Mock Target API

Классический Edge (частное облако)

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

  1. Войдите на сайт https://apigee.com/edge .
  2. В главном окне нажмите «API-прокси».

    В качестве альтернативы вы можете выбрать «Разработка» > «API-прокси» в левой панели навигации.

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

    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. На странице «Сборка» убедитесь, что выбрана тестовая среда, и нажмите «Сборка и развертывание» .
  15. На странице «Сводка» вы увидите подтверждение того, что ваш новый API-прокси был успешно создан и развернут в вашей тестовой среде.
    Создать сводку по прокси-серверу
  16. Нажмите Mock-Target-API , чтобы отобразить страницу обзора прокси-сервера API.
    Краткое описание прокси-сервера Mock Target API

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

Проверьте работу API-прокси.

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

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

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

Ответ

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

Hello, Guest!        

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

Добавить политику XML в JSON

Далее вам нужно добавить политику преобразования XML в JSON в условный поток «Просмотр XML-ответа» , который был автоматически сгенерирован при создании 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 в условный поток «Просмотр XML-ответа» в API-прокси.

  1. В пользовательском интерфейсе Edge нажмите вкладку «Разработка» в правом верхнем углу страницы «Обзор Mock-Target-API».
    вкладка "Разработчик"
  2. В левой панели навигатора, в разделе «Конечные точки прокси» > «По умолчанию», щелкните условный поток «Просмотр XML-ответа» .
    Выберите «Просмотреть XML-ответ».
  3. Нажмите кнопку «+Шаг» внизу, соответствующую варианту ответа для данного процесса.
    Выберите +Шаг
    Открывается диалоговое окно «Добавить шаг», в котором отображается отсортированный по категориям список всех политик, которые можно добавить.
  4. Прокрутите страницу до категории «Медиация» и выберите «XML в JSON» .
    Диалоговое окно «Добавить шаг»
  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"}}

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