Rotaları anlama

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
info

Rota, bir isteğin ProxyEndpoint'ten TargetEndpoint'e olan yolunu belirler. Rotaya, API ProxyEndpoint'ine erişmek için kullanılan URL ve TargetEndpoint tarafından tanımlanan arka uç hizmetinin URL'si dahildir.

ProxyEndpoint ile TargetEndpoint arasındaki ilişkiyi açıklayan rotalara giriş için bu videoyu izleyin.

API proxy'sinin uç noktasının URL'sini belirleme

Aşağıdaki resimde, bir uygulamadan ProxyEndpoint'e gelen ve arka uç hizmetine yönlendirilen bir istek gösterilmektedir:

Edge'de bir API proxy'si oluşturduktan sonra, bir uygulamanın proxy'ye erişmek için kullandığı varsayılan URL şu şekildedir:

http://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

https://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

Bu örnekte:

  • {org-name}, kuruluşunuzun adıdır. Bu ad, Edge'de hesap oluşturduğunuzda oluşturulur.
  • {env-name}, Edge ortam adıdır. Varsayılan olarak, bulutta oluşturulan tüm Apigee kuruluşları için iki ortam hazırlanır: test ve prod. API proxy'si dağıtırken proxy'yi ortamlardan birine veya her ikisine dağıtmayı seçebilirsiniz.
  • {base-path} ve {resource-path}, API proxy'sini oluşturduğunuzda tanımlanır.

Edge'e bir istek geldiğinde Edge, isteği doğru ProxyEndpoint'e yönlendirmek için URL'yi ayrıştırır. Örneğin, Edge'deki bir API proxy'sine erişmek için aşağıdaki URL kullanılır:

http://myOrg-prod.apigee.net/v1/weather/forecastrss

Yukarıdaki şekilde API proxy'sinin ProxyEndpoint tanımını incelerseniz bu URL'nin Edge tarafından nasıl ayrıştırıldığını görebilirsiniz:

  1. URL'nin alan adı bölümü (http://myOrg-prod.apigee.net), Edge'deki bir sanal ana makineye karşılık gelir. Yukarıdaki ProxyEndpoint tanımında API proxy'si, default adlı bir sanal ana makineye referans vermek için <VirtualHost> etiketini kullanır. Ortamınızda birden fazla sanal ana makine tanımlanmış olabilir.

    Sanal ana makine, bir API proxy'sinin kullanıma sunulduğu alanları ve bağlantı noktalarını tanımlar. Sanal ana makine, API proxy'sine HTTP protokolü veya şifrelenmiş HTTPS protokolü kullanılarak erişilip erişilmeyeceğini de tanımlar. Sanal ana makineler hakkında ayrıntılı bilgi için Sanal ana makineler hakkında (Beta) başlıklı makaleyi inceleyin.
  2. URL'nin ikinci kısmı olan /v1/weather, ProxyEndpoint'teki <BasePath> öğesi tarafından belirlenir. Temel yol, ortamın API proxy'sine özgü olmalıdır. Böylece iki API proxy'si aynı temel yola sahip olmaz.
  3. URL'nin üçüncü bölümü olan /forecastrss, <Flows> etiketiyle tanımlanan koşullu akışla birlikte API proxy'si tarafından tanımlanan bir kaynaktır.

Video: API proxy uç noktaları hakkında daha fazla bilgi edinmek için kısa bir video izleyin.

Hedef uç noktanın URL'sini belirleme

ProxyEndpoint tanımındaki <RouteRule> etiketi, API proxy'sinin hedefini belirler ve ProxyEndpoint isteğine ait PreFlow, Koşullu Akışlar ve PostFlow'daki tüm politikalar işlendikten sonra değerlendirilir.

ProxyEndpoint, hedefi şu şekilde tanımlayabilir:

  • Arka uç hizmetinin doğrudan URL'si.
  • Tek bir TargetEndpoint tanımı.
  • API proxy'sinin isteği bir koşula göre hedef uç noktaya devredildiği birden fazla TargetEndpoint.
  • Null rota veya hedef. Yani istek bir hedefe yönlendirilmez. Bunun yerine, istekle ilgili tüm işlemler ve yanıtın oluşturulması Edge'de gerçekleşir.

Video: Hedef uç noktalar hakkında daha fazla bilgi edinmek için kısa bir video izleyin.

Doğrudan URL

ProxyEndpoint, adlandırılmış herhangi bir TargetEndpoint yapılandırmasını atlayarak, doğrudan arka uç hizmetlerini çağırabilir. Örneğin, aşağıdaki <RouteRule> her zaman http://api.mycompany.com/myAPI adresine HTTP çağrısı yapar:

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

Ancak TargetEndpoint olmadığı için yalnızca ProxyEndpoint tarafından tanımlanan akışlara politika ekleyebilirsiniz.

Tek hedef

Tek bir hedef tanımında ProxyEndpoint, yukarıdaki resimde gösterildiği gibi ada göre tek bir TargetEndpoint tanımına referans verir:

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

Bu API proxy'sine yapılan tüm istekler aynı TargetEndpoint tanımına yönlendirilir. TargetEndpoint'teki <URL> etiketi, arka uç hizmetinin konumunu belirler. Yukarıdaki şekilde, hedef URL http://weather.yahooapis.com'dur.

Koşullu hedefler

<RouteRule> etiketi, bir koşula göre bir isteği bir hedefe yönlendirmenize olanak tanır. Hedef uç noktayı belirlemek için akış değişkenlerini, sorgu parametrelerini, HTTP başlıklarını, mesaj içeriğini veya bağlamsal bilgileri (ör. saat ve yerel ayar) kullanabilirsiniz. Örneğin, bir istek URL'sine ABD ve Birleşik Krallık gibi bir coğrafi bölge ekleyebilirsiniz. Ardından, isteği bölgeye göre bir hedef uç noktaya yönlendirebilirsiniz.

Aşağıdaki rota kuralı, istekteki HTTP başlığını değerlendirir. routeTo HTTP başlığında TargetEndpoint1 değeri varsa istek, TargetEndpoint1 adlı TargetEndpoint'e yönlendirilir. Aksi takdirde istek TargetEndpoint2'ye yönlendirilir.

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

Birden fazla rota kuralınız varsa "varsayılan" olarak, yani koşul içermeyen bir rota kuralı olarak bir kural oluşturun. Kurallar ProxyEndpoint'te yukarıdan aşağıya doğru değerlendirildiği için varsayılan rota kuralının koşullu rotalar listesinde en son tanımlandığından emin olun.

Koşullu rotalar ve Koşullar referansı'na da bakın.

Video: Koşullu hedefleri kullanarak bir hedef uç noktaya nasıl yönlendirme yapacağınızı öğrenmek için kısa bir video izleyin.

Boş rota

Boş bir yol, istek mesajının bir TargetEndpoint'e yönlendirilmesinin gerekmediği senaryoları destekler. Bu, ProxyEndpoint gerekli tüm işlemleri gerçekleştirdiğinde (ör. harici bir hizmeti çağırmak için JavaScript kullanarak) kullanışlıdır.

Aşağıdaki örnekte boş bir rota tanımlanmaktadır:

<RouteRule name="GoNowhere"/>

Daha fazla bilgi