Rotaları anlama

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

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

ProxyEndpoint ve TargetEndpoint arasındaki ilişkiyi açıklayan, rotaların tanıtımı için bu videoyu izleyin.

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

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

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

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ının adıdır. Bulutta oluşturulan tüm Apigee kuruluşlarına varsayılan olarak iki ortam sağlanır: "test" ve "prod". API proxy'sini dağıtırken ortamların birine veya her ikisine birden dağıtmayı seçebilirsiniz.
  • {base-path} ve {resource-path} API proxy'si 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, aşağıdaki URL, Edge'de bir API proxy'sine erişmek için 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'de 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 tanımlı birden fazla sanal ana makineniz olabilir.

    Sanal ana makine, API proxy'sinin açığa çıkarıldığı alan adlarını ve bağlantı noktalarını tanımlar. Sanal ana makine, API proxy'sine HTTP protokolüyle mi yoksa şifrelenmiş HTTPS protokolü kullanılarak mı erişildiğini 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 bölümü olan /v1/weather, ProxyEndpoint'teki <BasePath> öğesi tarafından belirlenir. İki API proxy'sinin aynı temel yola sahip olmaması için temel yol, ortam için API proxy'sine özel olmalıdır.
  3. URL'nin üçüncü bölümü olan /forecastrss, API proxy'si tarafından tanımlanan bir kaynaktır. İlgili Koşullu Akış, <Flows> etiketiyle tanımlanır.

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

Hedef uç noktanın URL'sini belirleme

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

ProxyEndpoint hedefi şu şekilde tanımlayabilir:

  • Bir arka uç hizmetinin doğrudan URL'sidir.
  • Tek bir TargetEndpoint tanımı.
  • API proxy'sinin, bir koşula göre istek için hedef uç noktaya yetki verdiği birden fazla TargetEndpoints.
  • Boş rota veya hedef (isteğin bir hedefe yönlendirilmediği anlamına gelir). Bunun yerine, isteğin işlenmesi ve yanıt oluşturulması sürecin tamamı 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 arka uç hizmetlerini doğrudan çağırabilir. Örneğin, aşağıdaki <RouteRule> özelliği her zaman http://api.mycompany.com/myAPI adresine bir HTTP çağrısı yapar:

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

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

Tek hedef

Tek bir hedef tanımında ProxyEndpoint, yukarıdaki şekilde 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 isteği koşul temelinde bir hedefe yönlendirmenizi sağlar. Hedef uç noktayı belirlemek için akış değişkenlerini, sorgu parametrelerini, HTTP üst bilgilerini, mesaj içeriğini veya günün saati ve yerel ayar gibi bağlamsal bilgileri kullanabilirsiniz. Örneğin, istek URL'sine ABD ve Birleşik Krallık gibi bir coğrafi bölge ekleyebilirsiniz. Daha sonra isteği, bölgeye göre bir hedef uç noktaya yönlendirebilirsiniz.

Aşağıdaki rota kuralı, bir istekteki HTTP üstbilgisini 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şulu olmayan bir rota kuralı olarak oluşturun. Kurallar ProxyEndpoint'te yukarıdan aşağıya doğru değerlendirildiğinden, varsayılan rota kuralının koşullu Rotalar listesinde en son tanımlandığından emin olun.

Koşullu rotalar ve Koşul referansı bölümlerini de inceleyin.

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

Boş rota

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

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

<RouteRule name="GoNowhere"/>

Daha fazla bilgi