Come effettuare richieste API dirette a router o processori di messaggi

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Introduzione

Durante la risoluzione dei problemi, è consigliabile eseguire le API direttamente sui componenti Apigee come un router o un processore di messaggi. Ad esempio, potresti voler eseguire questa operazione per:

  • Esegui il debug di problemi intermittenti con determinate richieste API che puntano a un problema con un determinato componente Apigee (router/processore messaggi).
  • Raccogli ulteriori informazioni diagnostiche attivando la modalità di debug su un'istanza specifica di un componente Apigee.
  • Escludi che il problema è causato da un componente Apigee specifico.
  • Scopri se operazioni come la generazione di una nuova istanza o il riavvio dell'istanza hanno l'impatto desiderato.

Prerequisiti

  • Accesso diretto ai componenti router o processore dei messaggi su cui devono essere eseguite le richieste API.
  • Lo strumento cURL deve essere installato sull'istanza specifica del componente.
  • La richiesta API da testare in formato cURL.

    Ad esempio, ecco un comando curl che puoi utilizzare per effettuare una richiesta a un proxy API dalla tua macchina locale:

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

Come eseguire le richieste API direttamente sui router Apigee

Scenario 1: richieste API all'alias host che punta ai router

Se la voce DNS dell'alias host è configurata in modo da indirizzare ai router Apigee Edge (in altre parole, non esiste un Elastic Load Balancer (ELB)), puoi utilizzare i seguenti comandi curl per effettuare le richieste API direttamente a un router:

  • Host virtuale configurato per comunicazioni non sicure tramite la porta 80

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

    Ad esempio:

    curl -v --resolve myorg-test.mycompany.com:80:127.0.0.1 http://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
  • L'host virtuale è configurato per terminare SSL sulla porta 443 del router

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

    Ad esempio:

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

Scenario 2: richieste API all'alias host che puntano a ELB

Se la voce DNS dell'alias host è configurata in modo da puntare a un bilanciatore del carico Elastic (ELB), puoi utilizzare i seguenti comandi curl per inviare le richieste API direttamente a un router:

  • Host virtuale configurato per comunicazioni non sicure tramite la porta 80

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

    Ad esempio:

    curl -v --resolve myorg-test.mycompany.com:80:127.0.0.1 http://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
  • L'host virtuale configurato per una porta alta e SSL termina su un bilanciatore del carico davanti al router Apigee

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

    Ad esempio:

    curl -v --resolve myorg-test.mycompany.com:19001:127.0.0.1 http://myorg-test.mycompany.com/v1/customers -H 'authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
  • Host virtuale configurato per una porta alta e SSL termina sul router Apigee

    In altre parole, il bilanciatore del carico è configurato per utilizzare il pass-through TCP al router Apigee.

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

    Ad esempio:

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

Come eseguire le richieste direttamente sui processori di messaggi Apigee

Scenario 1: richiesta API al processore di messaggi tramite la porta predefinita 8998

La porta predefinita su cui il processore di messaggi rimane in ascolto del traffico proveniente dal router Apigee è 8998. Pertanto, per tutti i casi in cui questa porta non è stata modificata, il traffico deve essere inviato direttamente a questa porta su un'istanza specifica del processore di messaggi, come nell'esempio seguente. La richiesta curl deve essere inviata all'URL http://INTERNAL_IP_OF_MP:8998 insieme all'intestazione X-Apigee.Host con il valore nome host, inclusa la porta utilizzata negli host virtuali, come mostrato nei seguenti tre esempi:

  • L'host virtuale è configurato per la terminazione SSL sul router

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

    Ad esempio:

    curl -v http://10.10.53.115:8998/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:443'
    
  • L'host virtuale è configurato per una "porta alta" e la terminazione SSL avviene su un bilanciatore del carico OPPURE su un router Apigee:

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

    Ad esempio:

    curl -v http://10.10.53.115:8998/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:19001'
    
  • L'host virtuale è configurato sulla porta HTTP 80 predefinita

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

    Ad esempio:

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

Scenario 2: richiesta API al processore di messaggi tramite la porta SSL 8443

È possibile configurare la comunicazione SSL tra router e processore di messaggi. I seguenti esempi utilizzano la porta 8443, quella suggerita dalla documentazione di Apigee.

  • L'host virtuale è configurato per la terminazione SSL sul router

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

    Ad esempio:

    curl -v https://10.10.53.115:8443/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:80'
    
  • L'host virtuale è configurato per la terminazione SSL su un bilanciatore del carico e il traffico viene inoltrato al router su una porta elevata

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

    Ad esempio:

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