Прокси службы SOAP

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

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

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

  • Сгенерируйте прокси-сервер Edge API из файла WSDL.
  • Разберитесь в различиях между RESTful SOAP-прокси и сквозным SOAP-прокси.

В этом руководстве вы узнаете, как настроить прокси-сервер Edge API перед веб-сервисом на основе SOAP.

В этом руководстве показано, как создать новый RESTful API перед вашим SOAP-сервисом. Хотя здесь это не описывается подробно, вы также можете создать сквозной прокси-сервер, который принимает SOAP-данные и передает их бэкэнд-сервису.

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

Создание прокси

Здесь Edge сгенерирует прокси-сервер, который будет располагаться перед SOAP-сервисом. Существует два типа SOAP API-прокси:

  • Прокси-сервер типа REST-SOAP-REST генерирует новый RESTful API со слоем преобразования в SOAP. Клиенты вызывают его так же, как и другие RESTful-сервисы, передавая параметры запроса, необходимые бэкэнд-сервису. Edge преобразует это в SOAP-данные, ожидаемые сервисом.
  • Тип прокси-сервера "сквозной" позволяет клиентам просто передавать полезную нагрузку SOAP. Это позволяет использовать преимущества функций управления на границе сети при вызове SOAP-сервисов.

Край

Для проксирования SOAP-сервиса с помощью пользовательского интерфейса Edge:

  1. Войдите на сайт apigee.com/edge .
  2. В левой панели навигации выберите «Разработка» > «API-прокси» .
  3. Нажмите +Прокси .
  4. Нажмите на SOAP-сервис .
  5. На странице сведений о прокси-сервере введите следующее:

    Поле Описание
    Исходный код WSDL

    Выберите: URL

    Скопируйте и вставьте следующий URL-адрес WSLD в поле «Введите URL-адрес» :

    https://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl

    Нажмите: Проверить

    Apigee Edge получает WSDL-файл и считывает его, чтобы определить список операций, поддерживаемых SOAP-сервисом.

    Имя

    Оставьте как есть: delayedstockquote

    Это имя для создаваемого вами API-прокси.

    Базовый путь Оставьте как есть: /delayedstockquote
    Описание При желании можно добавить описание, например: Котировки акций WSDL API Прокси
  6. Нажмите «Далее» .
  7. На странице «Общие политики» в разделе «Безопасность: Авторизация» выберите «Сквозная авторизация (без авторизации)» .
  8. Нажмите «Далее» .
  9. На странице операций WSDL выберите: REST to SOAP to REST .

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

    Все остальные выбранные параметры на странице оставьте без изменений.

  10. Нажмите «Далее» .
  11. Примите настройки виртуального хоста по умолчанию, нажав кнопку «Далее» .
  12. На странице «Сводка» в разделе «Дополнительное развертывание» нажмите «Тест» , а затем «Создать и развернуть» .

    Edge генерирует RESTful API-прокси и развертывает его в test среде. На основе WSDL он определяет поддерживаемые операции сервиса, входные параметры и так далее. Edge предлагает, какой HTTP-метод использовать для каждой операции. Как правило, Edge преобразует операции в GET-запросы, преимущество которых заключается в возможности кэширования. Edge также настраивает целевую конечную точку бэкэнда, которая может различаться для каждой SOAP-операции.

    Если вы не занимаетесь настройкой нового API-прокси (а в этом руководстве вы этим не занимаетесь), то на этом всё. Можете переходить к тестированию нового API-прокси.

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

Для проксирования SOAP-сервиса с использованием классического пользовательского интерфейса Edge:

  1. Войдите в систему по http:// ms-ip :9000 , где ms-ip — это IP-адрес или DNS-имя узла сервера управления.
  2. В верхней панели навигации выберите API > API-прокси .
  3. Нажмите + API-прокси .
  4. Нажмите на SOAP-сервис .
  5. На странице сведений о прокси-сервере введите следующее:

    Поле Описание
    WSDL

    Выберите: Пример URL

    Затем выберите:
    ...delayedstockquote.asmx?WSDL

    Нажмите: Проверить

    Apigee Edge получает WSDL-файл и считывает его, чтобы определить список операций, поддерживаемых SOAP-сервисом.

    Имя прокси

    Введите: delayedstockquote

    Это имя для создаваемого вами прокси-сервера.

    Базовый путь и описание прокси-сервера Оставьте как есть.
  6. Нажмите «Далее» .
  7. На странице WSDL выберите следующие пункты:
    В этой области сделайте это
    Тип API-прокси

    Выберите: REST, SOAP, REST

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

    Пока что оставьте выбранным только первый набор операций.

    Тип порта: DelayedStockQuoteSoap Выберите все три операции WSDL. Остальные настройки оставьте без изменений.

  8. Нажмите «Далее» .
  9. На странице «Безопасность» выберите «Сквозная передача (нет)» .
  10. Нажмите «Далее» .
  11. Примите настройки виртуального хоста по умолчанию и нажмите «Далее» .
  12. На странице «Сборка» примите значения по умолчанию и нажмите «Сборка и развертывание» , чтобы Edge начал генерацию прокси-сервера.

    Edge генерирует RESTful API-прокси. На основе WSDL он определяет поддерживаемые операции сервиса, входные параметры и так далее. Edge предлагает, какой HTTP-метод использовать для каждой операции. Как правило, Edge преобразует операции в GET-запросы, преимущество которых заключается в возможности кэширования. Edge также настраивает целевую конечную точку бэкэнда, которая может различаться для каждой SOAP-операции.

    Если вы не занимаетесь настройкой нового прокси (а в этом руководстве вы этим не занимаетесь), то на этом всё. Можете переходить к тестированию нового прокси.

Проверка прокси-сервера

Чтобы протестировать созданный вами прокси, откройте командную строку и используйте cURL. Введите команду ниже, где:

  • ORG — это название организации Edge, в которой вы создали прокси-сервер.
  • ENV — это среда, в которой развернут прокси-сервер.
  • DOMAIN соответствует используемому вами экземпляру Edge.
curl "https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

Например, если ваша организация называется docfood , среда — test , и вы используете корпоративное облако Edge, вы выполните команду следующего вида:

curl "https://docfood-test.apigee.net/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

Если вы ввели GOOG в качестве параметра запроса StockSymbol, вы должны получить текущую цену акций Alphabet Inc. класса C. Например:

{  
   "GetQuoteResponse":{  
      "GetQuoteResult":{  
         "StockSymbol":"GOOG",
         "LastTradeAmount":819.55,
         "LastTradeDateTime":"2017-02-13T14:33:00",
         "StockChange":5.88,
         "OpenAmount":816.0,
         "DayHigh":820.96,
         "DayLow":815.49,
         "StockVolume":785064,
         "PrevCls":813.67,
         "ChangePercent":"+0.72%",
         "FiftyTwoWeekRange":"663.28 - 841.95",
         "EarnPerShare":27.88,
         "PE":29.4,
         "CompanyName":"Alphabet Inc.",
         "QuoteError":false
      }
   }
}

Получите автоматически сгенерированную спецификацию OpenAPI.

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

Чтобы получить спецификацию OpenAPI, просто перейдите по этой ссылке:

curl https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/openapi.json

Дополнительное задание: Как определить, какие параметры ресурса, глагола и запроса следует использовать?

В тестовом вызове API вы использовали конкретный ресурс и параметры запроса в своем запросе cURL к бэкэнд-сервису SOAP. Но как бы вы узнали это самостоятельно?

Ресурс и глагол

В мастере создания API-прокси вы видели, как операции SOAP сопоставляются с глаголами и ресурсами API. Но если вы их не записали, вот как вы сможете узнать это после создания прокси.

На вкладке «Разработка » API-прокси в левой панели «Навигатор» вы увидите список потоков в разделе «Конечные точки прокси». Щелкните интересующий вас поток. Например, поток GetQuote — хороший вариант. Затем просмотрите XML-код в панели «Код», где в элементе <Условие> отображается путь к ресурсу и глагол для потока: /quote и GET .

Параметры запроса

Выбрав поток GetQuote , щелкните первую политику в графическом представлении потока. Это должна быть политика извлечения переменных, которая захватывает параметры запроса, которые должны быть переданы: StockSymbol и LicenseKey . (Если вы выполните поиск в интернете по запросу "SOAP-сервис", вы узнаете, что нужно передать в качестве LicenseKey.)

Захваченные параметры запроса сохраняются в виде переменных и используются следующей политикой для формирования SOAP-сообщения.