Questa pagina si applica a Apigee e Apigee ibridi.
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 nel ProxyEndpoint
da un'app e che
richiesta indirizzata al servizio di backend:
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 arriva una richiesta ad Apigee, Apigee analizza l'URL per indirizzare la richiesta all'URL
ProxyEndpoint
. Ad esempio, per accedere a un proxy API viene utilizzato il seguente URL:
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:
- La parte del dominio dell'URL,
http://example.com
, corrisponde a un nome host definito su un gruppo di ambienti. Il deployment del proxy è stato eseguito in uno o più ambienti all'interno di quel gruppo di ambienti. Per ulteriori informazioni, vedi Informazioni sugli ambienti e gruppi di ambienti. - La seconda parte dell'URL,
/v1/weather
, è determinata dallo<BasePath>
elemento inProxyEndpoint
. Hai definito il percorso di base durante la creazione del 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. - 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 saperne di più sugli endpoint del proxy API.
Determinazione dell'URL dell'endpoint di destinazione
L'elemento <RouteRule>
in un
La definizione di ProxyEndpoint
determina il target del proxy API e viene valutata dopo
I criteri in PreFlow, Conditional Flows e PostFlow della richiesta ProxyEndpoint
vengono
elaborati.
Un ProxyEndpoint
può definire il target come segue:
- 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. - Route o target nulle, vale a dire che la richiesta non viene inoltrata a una destinazione. Invece, tutti l'elaborazione della richiesta e la generazione della risposta avvengono su Apigee.
Video: guarda un breve video per saperne di più sugli endpoint target.
URL diretto
Un ProxyEndpoint
può richiamare direttamente un servizio di backend, bypassando qualsiasi
TargetEndpoint
configurazione. 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>
consente di
una richiesta viene indirizzata a una destinazione 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, potresti includere un'area geografica, come Stati Uniti
e nel Regno Unito in un URL della richiesta. 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
, poi la richiesta
viene inoltrato 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
di route condizionali perché le regole vengono valutate dall'alto verso il basso in ProxyEndpoint
.
Vedi anche Percorsi condizionali e Riferimento alle condizioni.
Video: guarda un breve video per scoprire come indirizzare gli utenti verso un endpoint target utilizzando target condizionali.
Percorso Null
Una route null supporta scenari in cui non è necessario inoltrare il messaggio di richiesta a
TargetEndpoint
. Ciò è utile quando ProxyEndpoint
esegue tutte
del trattamento necessario,
usando JavaScript per chiamare un servizio esterno, ad esempio.
L'esempio seguente definisce una route nulla:
<RouteRule name="GoNowhere"/>
Scopri di più
- Riferimento per la configurazione dei proxy API
- Riferimento per le proprietà degli endpoint
- Bilanciamento del carico tra i server di backend