Como fazer solicitações de API diretas para roteadores ou processadores de mensagens

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

Introdução

Ao resolver problemas, talvez seja necessário executar APIs diretamente em componentes da Apigee, como um roteador ou um processador de mensagens. Por exemplo, você pode fazer isso para:

  • Depure problemas intermitentes com determinadas solicitações de API que apontam para um problema com um componente específico da Apigee (roteador/processador de mensagens).
  • Reúna mais informações de diagnóstico ativando o modo de depuração em uma instância específica de um componente do Apigee.
  • Descarte a possibilidade de o problema ser causado por um componente específico da Apigee.
  • Descubra se operações como gerar uma nova instância ou reiniciar a instância têm o impacto desejado.

Pré-requisitos

  • Acesso direto aos componentes de roteador ou processador de mensagens em que as solicitações de API precisam ser executadas.
  • A ferramenta cURL precisa ser instalada na instância específica do componente.
  • A solicitação de API que você quer testar no formato cURL.

    Por exemplo, este é um comando curl que pode ser usado para fazer uma solicitação a um proxy de API da sua máquina local:

    curl https://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
    curl https://myorg-test.mycompany.com/v1/customers
    

Como executar solicitações de API diretamente nos roteadores da Apigee

Cenário 1: solicitações de API para alias de host que apontam para roteadores

Se a entrada de DNS do alias de host estiver configurada para apontar para os roteadores do Apigee Edge (ou seja, não houver um Elastic Load Balancer (ELB)), use os seguintes comandos curl para fazer as solicitações de API diretamente a um roteador:

  • Host virtual configurado para comunicação não segura pela porta 80

    curl -v --resolve HOST_ALIAS:80:127.0.0.1 http://HOST_ALIAS/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    Exemplo:

    curl -v --resolve myorg-test.mycompany.com:80:127.0.0.1 http://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
  • O host virtual está configurado para encerrar o SSL na porta 443 no roteador.

    curl -v --resolve HOST_ALIAS:443:127.0.0.1 https://HOST_ALIAS/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    Exemplo:

    curl -v --resolve myorg-test.mycompany.com:443:127.0.0.1 https://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    

Cenário 2: solicitações de API para alias de host que apontam para ELBs

Se a entrada de DNS do alias de host estiver configurada para apontar para um Elastic Load Balancer (ELB), use os comandos curl a seguir para fazer as solicitações de API diretamente a um roteador:

  • Host virtual configurado para comunicação não segura pela porta 80

    curl -v --resolve HOST_ALIAS:80:127.0.0.1 http://HOST_ALIAS/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    Exemplo:

    curl -v --resolve myorg-test.mycompany.com:80:127.0.0.1 http://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
  • Host virtual configurado para uma porta alta e o SSL é encerrado em um balanceador de carga na frente do roteador do Apigee

    curl -v --resolve HOST_ALIAS:PORT_NUMBER:127.0.0.1 http:/HOST_ALIAS:PORT_NUMBER/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    Exemplo:

    curl -v --resolve myorg-test.mycompany.com:19001:127.0.0.1 http://myorg-test.mycompany.com/v1/customers -H 'authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
  • Host virtual configurado para uma porta alta e o SSL é encerrado no roteador da Apigee

    Em outras palavras, o balanceador de carga é configurado para usar a passagem TCP para o roteador da Apigee.

    curl -v --resolve HOST_ALIAS:PORT_NUMBER:127.0.0.1 https:/HOST_ALIAS:PORT_NUMBER/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    Exemplo:

    curl -v --resolve myorg-test.mycompany.com:19001:127.0.0.1 https://myorg-test.mycompany.com/v1/customers -H 'authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    

Como executar solicitações diretamente nos processadores de mensagens da Apigee

Cenário 1: solicitação de API para o processador de mensagens pela porta padrão 8998

A porta padrão em que o processador de mensagens escuta o tráfego do roteador da Apigee é 8998. Portanto, em todos os casos em que essa porta não foi alterada, o tráfego precisa ser enviado diretamente para ela em uma instância específica do processador de mensagens, como no exemplo a seguir. A solicitação curl precisa ser enviada para o URL http://INTERNAL_IP_OF_MP:8998 com o cabeçalho X-Apigee.Host e o valor hostname, incluindo a porta usada nos hosts virtuais, conforme mostrado nos três exemplos a seguir:

  • O host virtual está configurado para encerramento de SSL no roteador

    curl -v http://INTERNAL_IP_OF_MP:8998/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:443'
    

    Exemplo:

    curl -v http://10.10.53.115:8998/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:443'
    
  • O host virtual está configurado para uma "porta alta", e a terminação SSL acontece em um balanceador de carga OU em um roteador da Apigee:

    curl -v http://INTERNAL_IP_OF_MP:8998/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:PORT_NUMBER'
    

    Exemplo:

    curl -v http://10.10.53.115:8998/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:19001'
    
  • O host virtual está configurado para a porta HTTP padrão 80

    curl -v http://INTERNAL_IP_OF_MP:8998/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:80'
    

    Exemplo:

    curl -v http://10.10.53.115:8998/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:80'
    

Cenário 2: solicitação de API para processador de mensagens pela porta SSL 8443

É possível configurar a comunicação SSL entre o roteador e o processador de mensagens. Os exemplos a seguir usam a porta 8443, sugerida na documentação da Apigee.

  • O host virtual está configurado para encerramento de SSL no roteador

    curl -v -k https://INTERNAL_IP_OF_MP:8443/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:443'
    

    Exemplo:

    curl -v https://10.10.53.115:8443/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:80'
    
  • O host virtual é configurado para encerramento de SSL em um balanceador de carga, e o tráfego é encaminhado para uma porta alta no roteador.

    curl -v https://INTERNAL_IP_OF_MP:8443/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:PORT_NUMBER'
    

    Exemplo:

    curl -v https://10.10.53.115:8443/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:19001'