Proxy de um serviço SOAP

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

O que você aprenderá

Neste tutorial, você aprenderá a:

  • Gerar um proxy de API Edge com base em um arquivo WSDL.
  • Conhecer a diferença entre um tipo de proxy SOAP RESTful e um proxy SOAP de passagem.

Neste tutorial, você aprenderá como colocar um proxy de API Edge na frente de um serviço da Web baseado em SOAP.

Este tutorial ilustra como gerar uma nova API RESTful na frente do serviço baseado em SOAP. Embora não seja descrito em detalhes aqui, também é possível gerar um proxy de passagem que aceita um payload SOAP e o transmite ao serviço de back-end.

O que é necessário

Como criar o proxy

Aqui, você fará com que o Edge gere o proxy que ficará na frente de um serviço SOAP. Há dois tipos de proxies de API SOAP:

  • O tipo de proxy**REST-SOAP-REST** gera uma nova API RESTful com uma camada de tradução para SOAP. Os clientes a chamam como fariam com outros serviços RESTful, transmitindo os parâmetros de consulta necessários pelo serviço de back-end. O Edge traduz isso no payload SOAP esperado pelo serviço.
  • O tipo de proxy de passagem permite que os clientes simplesmente transmitam um payload SOAP. Essa é uma maneira de fazer com que as chamadas de serviço SOAP se beneficiem dos recursos de gerenciamento do Edge.

Edge

Para fazer o proxy de um serviço SOAP usando a interface do Edge:

  1. Faça login em apigee.com/edge.
  2. Selecione Develop > API Proxies na barra de navegação à esquerda.
  3. Clique em +Proxy.
  4. Clique em SOAP service.
  5. Na página Detalhes do proxy, insira o seguinte:

    Campo Descrição
    Origem do WSDL

    Selecione: URL

    Copie e cole o seguinte URL do WSLD no campo Enter URL:

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

    Clique em: Validate

    O Apigee Edge recebe o arquivo WSDL e o lê para descobrir a lista de operações compatíveis com o serviço SOAP.

    Nome

    Deixe como está: delayedstockquote

    Esse é o nome do proxy de API que você está criando.

    Caminho base Deixe como está: /delayedstockquote
    Descrição Opcionalmente, adicione uma descrição, como: Stock quote WSDL API Proxy
  6. Clique em Próxima.
  7. Na página Common policies, em Security: Authorization, selecione Pass through (no authorization).
  8. Clique em Próxima.
  9. Na página WSDL operations, selecione: REST to SOAP to REST.

    Depois de selecionar o tipo de proxy, o Edge mostra a lista de operações para as quais ele vai gerar caminhos de API REST. Essa lista permite selecionar entre as operações encontradas no WSDL (caso você tenha um conjunto específico que esteja procurando). Observe que a tabela também mostra recursos que um cliente REST pode usar para chamar o serviço SOAP de back-end.

    Deixe todas as outras seleções na página como estão.

  10. Clique em Próxima.
  11. Aceite os padrões de host virtual clicando em Próxima.
  12. Na página Summary , em Implantação opcional, clique em Test e em Create and deploy.

    O Edge gera um proxy de API RESTful e o implanta no ambiente test. No WSDL, ele determina as operações compatíveis do serviço, os parâmetros de entrada e assim por diante. O Edge sugere qual método HTTP usar para cada operação. Normalmente, o Edge traduz as operações em solicitações GET, que têm a vantagem de serem armazenáveis em cache. O Edge também configura o endpoint de destino de back-end, que pode variar de acordo com a operação SOAP.

    A menos que você esteja personalizando o novo proxy de API (e não está neste tutorial), é isso. Você pode passar para o teste do novo proxy de API.

Edge clássico (nuvem privada)

Para fazer o proxy de um serviço SOAP usando a interface clássica do Edge:

  1. Faça login em http://ms-ip:9000, em que ms-ip é o endereço IP ou o nome DNS do nó do servidor de gerenciamento.
  2. Selecione APIs > Proxies de API na barra de navegação superior.
  3. Clique em + API Proxy.
  4. Clique em SOAP service.
  5. Na página Detalhes do proxy, insira o seguinte:

    Campo Descrição
    WSDL

    Selecione: Example URL

    Em seguida, selecione uma destas opções:
    ...delayedstockquote.asmx?WSDL

    Clique em: Validate

    O Apigee Edge recebe o arquivo WSDL e o lê para descobrir a lista de operações compatíveis com o serviço SOAP.

    Proxy Name

    Insira: delayedstockquote

    Esse é o nome do proxy que você está criando.

    Proxy Base Path e Description Deixe como está.
  6. Clique em Próxima.
  7. Na página WSDL, faça estas seleções:
    Neste campo faça isso
    Tipo de proxy de API

    Selecione: REST to SOAP to REST

    Depois de selecionar o tipo de proxy, o Edge mostra a lista de operações para as quais ele vai gerar caminhos de API REST, conforme mostrado aqui. Essa lista permite selecionar entre as operações encontradas no WSDL (caso você tenha um conjunto específico que esteja procurando). Observe que a tabela também mostra recursos que um cliente REST pode usar para chamar o serviço SOAP de back-end.

    Por enquanto, deixe o primeiro conjunto de operações selecionado.

    Tipo de porta: DelayedStockQuoteSoap Selecione todas as três operações WSDL. Deixe as outras configurações como estão.

  8. Clique em Próxima.
  9. Na página "Security", selecione Pass through (none).
  10. Clique em Próxima.
  11. Aceite os padrões de host virtual e clique em Próxima.
  12. Na página "Build", aceite os padrões e clique em Build and Deploy para que o Edge comece a gerar o proxy.

    O Edge gera um proxy de API RESTful. No WSDL, ele determina as operações compatíveis do serviço, os parâmetros de entrada e assim por diante. O Edge sugere qual método HTTP usar para cada operação. Normalmente, o Edge traduz as operações em solicitações GET, que têm a vantagem de serem armazenáveis em cache. O Edge também configura o endpoint de destino de back-end, que pode variar de acordo com a operação SOAP.

    A menos que você esteja personalizando o novo proxy (e não está neste tutorial), é isso. Você pode passar para o teste do novo proxy.

Como testar o proxy

Para testar o proxy que você criou, abra um prompt de comando e use o cURL. Digite o comando abaixo, em que:

  • ORG é o nome da organização do Edge em que você criou o proxy.
  • ENV é o ambiente em que o proxy está implantado.
  • DOMAIN corresponde à instância do Edge que você está usando.
curl "https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

Por exemplo, se sua organização for docfood, o ambiente for test, e você estiver usando a nuvem empresarial do Edge, execute um comando como este:

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

Se você inseriu GOOG para o parâmetro de consulta StockSymbol, vai receber o preço atual das ações da Alphabet Inc. Classe C. Exemplo:

{  
   "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
      }
   }
}

Receber a especificação OpenAPI gerada automaticamente

Ao fazer o proxy de um serviço SOAP usando "REST to SOAP to REST", o Edge gera automaticamente uma especificação OpenAPI. Você pode usar a especificação OpenAPI para gerar a documentação da API.

Para receber a especificação OpenAPI, basta acessar este URL:

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

Crédito extra: como descobrir qual recurso, verbo e parâmetros de consulta usar?

Na chamada de API de teste, você usou um recurso específico e parâmetros de consulta na chamada cURL para o serviço SOAP de back-end. Mas como você descobriria isso por conta própria?

Recurso e verbo

No assistente de proxy de API, ao criar o proxy, você viu como as operações SOAP seriam mapeadas para verbos e recursos de API. Mas, se você não anotou isso, veja como descobrir depois que o proxy for criado.

Na guia Develop do proxy de API, no painel de navegação à esquerda, você verá uma lista de fluxos em Endpoints de proxy. Clique no fluxo de seu interesse. Por exemplo, o GetQuote fluxo é um bom candidato. Em seguida, visualize o XML no painel "Code", que mostra o caminho do recurso e o verbo do fluxo no elemento <Condition>: /quote e GET.

Parâmetros de consulta

Com o fluxo GetQuote selecionado, clique na primeira política na visualização gráfica do fluxo. Ele precisa ser uma política de extração de variáveis que captura os parâmetros de consulta que precisam ser transmitidos: StockSymbol e LicenseKey. Se você fizer uma pesquisa na Web pelo serviço SOAP, ele informará o que transmitir para a LicenseKey.

Os parâmetros de consulta capturados são salvos como variáveis e usados pela próxima política para construir a mensagem SOAP.