İstek ve yanıt değişkenleri

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

Bir API proxy'sine istek yaptığınızda, API proxy'sinin yapılandırma şekline bağlı olarak aşağıdaki bilgilerin herhangi birini veya tümünü aktarabilirsiniz:

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

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

Aynı durum, Edge'in arka uç hizmetinden aldığı yanıt için de geçerlidir. Varsayılan olarak, yanıtta alınan tüm veriler, isteği gönderen uygulamaya değiştirilmeden aktarılır.

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

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

HTTP hizmetine ulaşmak için, proxy Uç Noktası'ndan arka uçtaki Hedef Uç Nokta'ya geçen HTTP istemcisinden istek. Proxy uç noktası ve hedef uç nokta örnekleri verilmiştir.

Bu API proxy'si için:

  • API proxy sanal ana makinesi: "default"
  • Sanal ana makine tarafından tanımlanan alan: "http://myOrg-prod.../../.net"
  • Proxy temel yolu: "/v1/weather"
  • Rota kuralı tarafından Hedef Uç nokta belirtildi: "varsayılan"
  • 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 bazı 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: "ALIN"
  • proxy.basepath: "/v1/hava durumu"
  • proxy.pathsuffix: "tahminler"
  • request.querystring: "w=12797282"

TargetEndpoint daha sonra istekteki bilgileri kullanarak arka uç hizmetine istek gönderir:

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

İstekte belirtilen kaynak ve sorgu parametrelerinin arka uç sunucusuna yapılan isteğe otomatik olarak nasıl dahil edildiğine dikkat edin. TargetEndpoint'in tanımına göre istek şu biçime sahip olur:

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

Sorgu parametreleri gibi, API proxy'sine yapılan isteğe dahil ettiğiniz tüm üst bilgiler veya form parametreleri de arka uç sunucusuna iletilir. Örneğin, aşağıdaki üstbilgiyi içeren istekte bulundunuz:

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

Dilerseniz aşağıdaki formdan bir başlık ve form verisi ekleme isteği de 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 üstbilgi ve form verileri arka uç hizmetine değiştirilmeden geçirilir. Başlıklar, 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, yanıtta Edge tarafından arka uç hizmetinden alınan tüm veriler, isteği gönderen uygulamaya değiştirilmeden aktarılır. Yukarıda istek için açıklandığı gibi, yanıtta döndürülen verilere Edge'deki akış değişkenleri üzerinden 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

Birçok kez istek verilerini arka uç sunucusuna göndermeden önce değiştirmek isteyebilirsiniz. Örneğin:

  • Edge tarafından istekleri doğrulamak amacıyla kullanılan güvenlik bilgilerini kaldırmak için. Arka uç hizmeti bu bilgilere ihtiyaç duymaz.
  • Arka uç hizmetine gönderilen verileri eklemek (ö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'sinde birden fazla TargetEndpoint olabilir. İstek tarafından kullanılan TargetEndpoint, istek verilerine göre belirlenir. Daha sonra, arka uç hizmetine göndermeden önce bu verileri istekten çıkarırsınız.

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

Erişim isteği mesajları

Bir istek mesajının bazı bölümlerine erişmek ve bunları değiştirmek için politikaları kullanabilirsiniz. Bu bölümler şunları içerir:

  • Ü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ülen isteği hedefe gönderir.

Politikalar, istek değişkenlerini inceledikten sonra bu değişkenlerin içeriğine göre isteği dönüştürebilir veya reddedebilir. Politikalar, uygun değişkenleri (örneğin, istek başlıklarına karşılık gelen değişkenler) ayarlayarak isteği dönüştürür.

Yanıt mesajlarına erişim

Politikalar; yanıt mesajı için geçerli değişkenleri kullanarak başlık, sorgu parametreleri, form parametreleri, kaynak IP adresi, HTTP mesaj gövdesi gibi mesaj bileşenlerine erişebilir.

Proxy bir yanıt mesajı alır, ardından yanıtta değerlendirilen koşullara dayalı olarak bir dizi politikayı uygular. Bu koşullar, yanıtı değiştirebilir veya dönüştürebilir.

Politikalar, yanıt değişkenlerini inceledikten sonra bu değişkenlerin içeriğine göre isteği dönüştürebilir veya reddedebilir. Politikalar, uygun değişkenleri (örneğin, 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 sık kullanılan politikalar

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