Informazioni sulle route

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza documentazione di Apigee Edge.

Una route determina il percorso di una richiesta da ProxyEndpoint a TargetEndpoint. La route include l'URL utilizzato per accedere all'API ProxyEndpoint e l'URL del servizio di backend definito dal TargetEndpoint.

Guarda questo video per un'introduzione agli itinerari, che descrive il rapporto tra ProxyEndpoint e TargetEndpoint.

Determinazione dell'URL del proxy API endpoint

L'immagine seguente mostra una richiesta in arrivo al ProxyEndpoint da un'app e la richiesta indirizzata al servizio di backend:

Una richiesta del client HTTP passa attraverso un proxy API su Apigee al servizio HTTP e poi la risposta passa di nuovo attraverso il proxy API al client.

Dopo aver creato un proxy API su Apigee, l'URL predefinito utilizzato da un'app per accedere al proxy ha il seguente formato:

https://www.example.com/shopping/cart/addItem
        |_____________| |___________| |_____|
               |             |           |
            hostname      basepath     resource

Dove:

  • Il nome host è un dominio che hai aggiunto al DNS o un indirizzo IP.
  • Il percorso di base e il percorso della risorsa sono definiti quando crei il proxy API.

Quando Apigee riceve una richiesta, analizza l'URL per indirizzarla al ProxyEndpoint corretto. Ad esempio, il seguente URL viene utilizzato per accedere a un proxy API:

http://example.com/v1/weather/forecastrss

Se esamini la definizione di ProxyEndpoint per il proxy API nella figura sopra, puoi vedere come viene analizzato questo URL:

  1. La parte del dominio dell'URL, http://example.com, corrisponde a un nome host definito su un gruppo di ambienti. Il proxy è stato disegnato in uno o più ambienti all'interno del gruppo di ambienti. Per saperne di più, consulta Informazioni sugli ambienti e su Gruppi di ambienti.
  2. La seconda parte dell'URL, /v1/weather, è determinata dallo <BasePath> elemento in ProxyEndpoint. Hai definito il percorso di base quando hai creato il proxy. La base il percorso deve essere univoco del proxy API per l'ambiente, in modo che due proxy API nello stesso non hanno lo stesso percorso di base.
  3. La terza parte dell'URL, /forecastrss, è una risorsa definita dalla Proxy API con il flusso condizionale corrispondente definito dall'elemento <Flows> .

Video: guarda un breve video per scoprire di più sugli endpoint proxy API.

Determinazione dell'URL dell'endpoint di destinazione

L'elemento <RouteRule> in una definizione ProxyEndpoint determina la destinazione del proxy API e viene valutato dopo che tutti i criteri in PreFlow, Conditional Flows e PostFlow della richiesta ProxyEndpoint sono stati elaborati.

Un ProxyEndpoint può definire il target come:

  • Un URL diretto a un servizio di backend.
  • Una singola definizione di TargetEndpoint.
  • Più TargetEndpoint in cui il proxy API delega la richiesta a una destinazione endpoint in base a una condizione.
  • Percorso o target nullo, il che significa che la richiesta non viene inoltrata a un target. Invece, tutti l'elaborazione della richiesta e la generazione della risposta avvengono su Apigee.

Video: guarda un breve video per scoprire di più sugli endpoint di destinazione.

URL diretto

Un ProxyEndpoint può richiamare direttamente un servizio di backend, bypassando qualsiasi configurazione TargetEndpoint nominato. Ad esempio, il seguente <RouteRule> effettua sempre una richiesta HTTP chiama a http://example.com/myAPI:

<RouteRule name="default">
  <URL>http://example.com/myAPI</URL>
</RouteRule>

Tuttavia, poiché non esiste un TargetEndpoint, puoi aggiungere criteri solo alla flussi definiti dal ProxyEndpoint.

Destinazione singola

In una singola definizione di target, ProxyEndpoint fa riferimento a una singola Definizione di TargetEndpoint per nome, come mostrato nella figura sopra:

<RouteRule name="default">
  <TargetEndpoint>default</TargetEndpoint>
</RouteRule>

Tutte le richieste a questo proxy API sono indirizzate alla stessa definizione di TargetEndpoint. La Tag <URL> nel TargetEndpoint determina la località del servizio di backend. nella figura sopra, l'URL di destinazione è http://weather.yahooapis.com.

Target condizionali

Il tag <RouteRule> ti consente di indirizzare una richiesta a un target in base a una condizione. Puoi usare variabili di flusso, query parametri, intestazioni HTTP, contenuto dei messaggi o informazioni contestuali, come ora del giorno e impostazioni internazionali per determinare l'endpoint di destinazione. Ad esempio, in un URL richiesta potresti includere un'area geografica, come Stati Uniti e Regno Unito. Puoi quindi instradare una richiesta a un endpoint di destinazione in base regione.

La seguente regola di route valuta un'intestazione HTTP in una richiesta. Se l'intestazione HTTP routeTo ha il valore TargetEndpoint1, la richiesta viene inoltrata al TargetEndpoint denominato TargetEndpoint1. In caso contrario, la richiesta viene inoltrata a TargetEndpoint2.

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
  <TargetEndpoint>TargetEndpoint2</TargetEndpoint>
</RouteRule>

Se sono presenti più regole di route, creane una come predefinita, ovvero come una route senza alcuna condizione. Assicurati che la regola di route predefinita sia definita per ultima nell'elenco dei route condizionali perché le regole vengono valutate dall'alto verso il basso in ProxyEndpoint.

Consulta anche Percorsi agevolati e Riferimento alle condizioni.

Video: guarda un breve video per scoprire come indirizzare a un endpoint target utilizzando i target condizionali.

Percorso nullo

Un percorso nullo supporta gli scenari in cui il messaggio di richiesta non deve essere inoltrato a un TargetEndpoint. Ciò è utile quando ProxyEndpoint esegue tutte del trattamento necessario, ad esempio usando JavaScript per chiamare un servizio esterno.

L'esempio seguente definisce un percorso nullo:

<RouteRule name="GoNowhere"/>

Scopri di più