İstek ve yanıt değişkenleri

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

Bir API proxy'sine istek gönderirken, API proxy'sinin yapılandırılmasına bağlı olarak aşağıdaki bilgilerin herhangi birini veya tümünü iletebilirsiniz:

  • İstek başlıkları
  • Sorgu parametreleri
  • Form verileri
  • XML veya JSON yükleri
  • Kaynak URI'leri

Varsayılan olarak, bir istekteki tüm veriler ProxyEndpoint'ten TargetEndpoint'e değiştirilmeden aktarılır. Bu nedenle, TargetEndpoint arka uç sunucuya istek gönderdiğinde orijinal istekteki tüm bilgiler arka uç hizmetine iletilir.

Edge'in arka uç hizmetinden aldığı yanıt için de aynı durum geçerlidir. Varsayılan olarak, yanıtta alınan tüm veriler, isteği başlatan uygulamaya değiştirilmeden iletilir.

İstek verileri arka uç sunucuya nasıl iletilir?

Aşağıdaki resimde bir API proxy tanımı gösterilmektedir:

HTTP istemcisinin, HTTP hizmetine ulaşmak için Proxy uç noktasından arka uçtaki hedef uç noktaya gönderdiği istek. Proxy uç noktası ve hedef uç noktası örnekleri sağlanır.

Bu API proxy'si için:

  • API proxy sanal ana makinesi: "default"
  • Sanal ana makine tarafından tanımlanan alan: "http://myOrg-prod.apigee.net"
  • Proxy ana yolu: "/v1/weather"
  • Yol kuralı tarafından belirtilen TargetEndpoint: "default"
  • Hedef URL: "http://weather.yahooapis.com"

Bir istemci uygulaması, aşağıdaki curl komutunu kullanarak API proxy'sine GET isteğinde bulunur:

curl -X GET http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

Bu isteğin, "forecastrss" kaynağını ve bir sorgu parametresini (w) içerdiğine dikkat edin. Edge, isteği aşağıda gösterildiği gibi ayrıştırır ve isteğin bölümlerini akış değişkenlerine atar:

{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}

Akış değişkenleri aşağıdaki değerlerle ayarlanır:

  • request.verb: "AL"
  • proxy.basepath: "/v1/weather"
  • proxy.pathsuffix: "tahminciler"
  • request.querystring: "w=12797282"

Ardından TargetEndpoint, istekteki bilgileri kullanarak arka uç hizmetine bir istek gönderir:

{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}

İstekte belirtilen kaynak ve sorgu parametrelerinin arka uç sunucuya gönderilen isteğe otomatik olarak nasıl dahil edildiğine dikkat edin. TargetEndpoint tanımına göre istek şu şekilde olacaktır:

curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282

Sorgu parametreleri gibi, API proxy'sine gönderdiğiniz isteğe eklediğiniz tüm üstbilgiler veya form parametreleri arka uç sunucuya iletilir. Örneğin, aşağıdaki başlığı içeren isteği gönderirseniz:

curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

Alternatif olarak, aşağıdaki formda bir başlık ve form verileri ekleme isteği gönderebilirsiniz:

curl -X POST -H "Content-type:application/json" -d \
  '{"email" : "janetutorialxml@example.com",
    "firstName" : "Jane",
    "lastName" : "Tutorial",
    "userName" : "jtutorialxml"
  }' \
  http://myOrg-prod.apigee.net/v1/register/user

Her iki örnekte de başlıklar ve form verileri arka uç hizmetine değiştirilmeden aktarılır. Üstbilgiler, request.headers.count ve request.headers.names gibi akış değişkenleriyle temsil edilir. Form verileri, request.formparam.count ve request.formparam.names gibi akış değişkenleriyle temsil edilir.

Yanıt verileri nasıl döndürülür?

Varsayılan olarak, Edge'in yanıtta arka uç hizmetinden aldığı tüm veriler, isteği başlatan uygulamaya değiştirilmeden iletilir. İstek için yukarıda açıklandığı gibi, yanıtta döndürülen verilere Edge'deki akış değişkenleri aracılığıyla erişilebilir. Daha fazla bilgi için Akış değişkenleri referansı bölümüne bakın.

API proxy'sinde istek ve yanıt verilerine erişme

İstek verilerini arka uç sunucuya göndermeden önce değiştirmek istediğiniz birçok durum vardır. Örneğin:

  • Edge'in istekleri doğrulamak için kullandığı güvenlik bilgilerini kaldırmak için. Bu bilgi, arka uç hizmeti tarafından gerekli değildir.
  • Arka uç hizmetine gönderilen verileri eklemek için (ör. kullanıcıları izlemek veya analiz toplamak için).
  • İsteği, istek verilerine göre koşullu olarak işlemek için. Örneğin, bir API proxy'sinin birden fazla TargetEndpoint'i olabilir. İstek tarafından kullanılan TargetEndpoint, istek verilerine göre belirlenir. Ardından, arka uç hizmetine göndermeden önce bu verileri istekten kaldırırsınız.

Aynı durum yanıttaki veriler için de geçerlidir. API proxy'si, yanıtı işleme kapsamında, istekte bulunan uygulamaya döndürmeden önce verileri değiştirmek isteyebilir.

Erişim isteği mesajları

Politikaları kullanarak bir istek mesajının bazı bölümlerine erişebilir ve bunları değiştirebilirsiniz. Bu bölümler şunlardır:

  • Üst bilgiler
  • Sorgu parametreleri
  • Form parametreleri
  • Kaynak IP adresi
  • HTTP mesaj gövdesi

Normal bir akışta, istek işlendikten sonra proxy, dönüştürülmüş isteği hedefe gönderir.

Politikalar, istek değişkenlerini inceleyebilir ve ardından bu değişkenlerin içeriğine göre isteği dönüştürebilir veya reddedebilir. Politikalar, istek üstbilgilerine karşılık gelen değişkenler gibi uygun değişkenleri ayarlayarak isteği dönüştürür.

Yanıt mesajlarına erişme

Politikalar, yanıt mesajı için geçerli olan değişkenleri kullanarak üstbilgi, sorgu parametreleri, form parametreleri, kaynak IP adresi, HTTP mesaj gövdesi vb. dahil olmak üzere mesaj bileşenlerine erişebilir.

Vekil, bir yanıt mesajı alır ve ardından yanıtta değerlendirilen koşullara göre yanıtı değiştirebilecek veya dönüştürebilecek bir dizi politika uygular.

Politikalar, yanıt değişkenlerini inceleyebilir ve ardından bu değişkenlerin içeriğine göre isteği dönüştürebilir veya reddedebilir. Politikalar, uygun değişkenleri (ör. yanıt başlıklarına karşılık gelen değişkenler) ayarlayarak yanıtı dönüştürür.

Akış değişkenlerine erişmek için kullanılan yaygın politikalar

Edge, istek ve yanıt verilerini işlemek için kullanabileceğiniz çeşitli politikalar tanımlar. Bu politikalar şunları içerir: