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:
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:
- assignMessage politikası: API proxy akışı sırasında HTTP istek veya yanıt mesajları oluşturur ya da değiştirir. Ayrıca yeni akış değişkenleri oluşturur ve doldurur.
- Değişkenler politikası: Koşul ifadesinde kullanmak üzere üstbilgiler, URI yolları, yük ve sorgu parametreleri dahil olmak üzere mesajlardan içerik çıkarın. Politika, ileti içeriğine bir metin kalıbı uygular ve eşleşme bulunduğunda belirtilen değişkeni belirler.
- JSONtoXML politikası ve XMLtoJSON politikası: JavaScript Object Notation (JSON) biçimindeki mesajları genişletilebilir işaretleme dili (XML) biçimine (veya tersi) dönüştürür.
- JavaCall politikası, JavaScript politikası, PythonScript politikası, RegularExpressionProtection politikası: Bu politikalar, istek ve yanıt verilerini içeren akış değişkenlerine erişmek için komut dosyası yazmanıza olanak tanır.