Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Bir API proxy'sine istekte bulunduğunuzda, API proxy'sinin yapılandırılma şekline 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 iletilir. Bu nedenle, TargetEndpoint arka uç sunucusuna istekte bulunduğunda orijinal isteğin tüm bilgileri 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 başlatan uygulamaya değiştirilmeden iletilir.
İstek verileri arka uç sunucusuna nasıl iletilir?
Aşağıdaki resimde bir API proxy tanımı gösterilmektedir:

Bu API proxy'si için:
- API proxy'si sanal ana makinesi: "default"
- Sanal ana makine tarafından tanımlanan alan: "http://myOrg-prod.apigee.net"
- Proxy temel yolu: "/v1/weather"
- Rota 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 içerdiğini unutmayın: w. 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: "GET"proxy.basepath: "/v1/weather"proxy.pathsuffix: "forecastrss"request.querystring: "w=12797282"
TargetEndpoint daha sonra istekteki bilgileri kullanarak arka uç hizmetine bir istek gönderir:
{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}İstekle belirtilen kaynak ve sorgu parametrelerinin, arka uç sunucusuna yapılan isteğe otomatik olarak dahil edildiğini unutmayın. TargetEndpoint tanımından sonra istek şu biçimde olur:
curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282
Sorgu parametreleri gibi, API proxy'sine yapılan isteğe eklediğiniz tüm üstbilgiler veya form parametreleri arka uç sunucusuna iletilir. Örneğin, aşağıdaki isteği gönderiyorsunuz. Bu istekte bir başlık var:
curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282
Veya aşağıdaki formda bir başlık ve form verileri ekleme isteği:
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 üstbilgiler ve form verileri, arka uç hizmetine değiştirilmeden iletilir. Ü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, yanıttaki arka uç hizmetinden Edge tarafından alınan 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ı başlıklı makaleyi inceleyin.
API proxy'sindeki istek ve yanıt verilerine erişme
İstek verilerini arka uç sunucusuna göndermeden önce değiştirmek istediğiniz birçok durum olabilir. Ö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'sinde birden fazla TargetEndpoint olabilir. İstek tarafından kullanılan TargetEndpoint, istek verileriyle belirlenir. Ardından, arka uç hizmetine göndermeden önce bu verileri istekten çıkarırsınız.
Yanıtın içindeki veriler için de aynı durum geçerlidir. API proxy'si, yanıtı işleme sürecinde verileri isteyen uygulamaya döndürmeden önce değiştirmek isteyebilir.
Erişim isteği mesajları
İstek mesajının bölümlerine erişmek ve bu bölümleri değiştirmek için politikaları kullanabilirsiniz. Bu bölümler şunlardır:
- Üst bilgiler
- Sorgu parametreleri
- Form parametreleri
- Kaynak IP adresi
- HTTP mesaj gövdesi
Normal akışta, istek işlendikten sonra proxy, dönüştürülmüş isteği hedefe gönderir.
Politikalar, istek değişkenlerini inceleyebilir, ardından bu değişkenlerin içeriğine göre isteği dönüştürebilir veya reddedebilir. Politikalar, isteği uygun değişkenleri (ör. istek başlıklarına karşılık gelen değişkenler) ayarlayarak dönüştürür.
Yanıt mesajlarına erişme
Politikalar, yanıt iletisi için geçerli olan değişkenleri kullanarak başlık, sorgu parametreleri ve form parametreleri, kaynak IP adresi, HTTP e-posta mesajı gibi ileti bileşenlerine erişebilir.
Proxy, bir yanıt mesajı alır ve ardından yanıtta değerlendirilen koşullara göre bir dizi politika uygular. Bu politikalar, yanıtı değiştirebilir veya dönüştürebilir.
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 üstbilgilerine karşılık gelen değişkenler) ayarlayarak yanıtı dönüştürür.
Akış değişkenlerine erişim için yaygın politikalar
Edge, istek ve yanıt verilerini işlemek için kullanabileceğiniz çeşitli politikalar tanımlar. Bu politikalar arasında şunlar bulunur:
- AssignMessage politikası: API proxy akışı sırasında HTTP isteği veya yanıt mesajları oluşturur ya da bunları değiştirir. Ayrıca yeni akış değişkenleri oluşturur ve bunları doldurur.
- ExtractVariables politikası: Bir koşul ifadesinde kullanılmak üzere, başlıklar, URI yolları, yükler ve sorgu parametreleri dahil olmak üzere iletilerden içerik ayıklayın. Politika daha sonra ileti içeriğine bir metin kalıbı uygular ve eşleşme bulduğunda belirlenmiş bir değişkeni ayarlar.
- JSONtoXML politikası ve XMLtoJSON politikası: İletileri JavaScript Nesnesi Gösterimi (JSON) biçiminden genişletilebilir biçimlendirme dili (XML) biçimine veya tam tersi şekilde dönüştürür.
- JavaCallout politikası, JavaScript politikası, PythonScript politikası, RegularExpressionProtection politikası: Bu politikalar, istek ve yanıt verilerini içeren akış değişkenlerine erişmek için bir komut dosyası yazmanıza olanak tanır.