Come effettuare richieste API dirette a router o processori di messaggi

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Introduzione

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

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

Prerequisiti

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

    Ad esempio, ecco un comando curl che potresti utilizzare per inviare 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 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 puntare ai router Apigee Edge (ovvero non esiste Elastic Load Balancer (ELB)), puoi utilizzare i seguenti comandi curl per effettuare le richieste API direttamente a un router:

  • Host virtuale configurato per la comunicazione non sicura 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 punta ai bilanciatori del carico elastici

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

  • Host virtuale configurato per la comunicazione non sicura 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'
    
  • 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 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 è in ascolto del traffico 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 hostname, incluso il numero di porta utilizzato negli host virtuali, come mostrato nei tre esempi seguenti:

  • 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 O 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 per la porta HTTP predefinita 80

    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 il router e il processore di messaggi. Gli esempi seguenti utilizzano la porta 8443, la porta 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 a una porta elevata al router

    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'