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:
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:
- AssignmentMessage politikası: API proxy akışı sırasında HTTP isteği veya yanıt mesajları oluşturur ya da değiştirir. Ayrıca yeni akış değişkenleri oluşturur ve doldurur.
- ExtractVariables politikası: Koşul ifadesinde kullanmak üzere başlıklar, URI yolları, yük ve sorgu parametreleri dahil olmak üzere mesajlardan içerik ayıklayın. Ardından politika, ileti içeriğine bir metin kalıbı uygular ve eşleşme bulduğunda belirlenen bir değişkeni ayarlar.
- JSONtoXML politikası ve XMLtoJSON politikası: Mesajları JavaScript Object Notation (JSON) biçiminden genişletilebilir işaretleme dili (XML) biçimine veya tam tersine dönüştürür.
- JavaCallout politikası, JavaScript politikası, PythonScript politikası, RegularExpressionProtection politikası: Bu politikalar, istek ve yanıt verilerini içeren iş akışı değişkenlerine erişmek için bir komut dosyası yazmanıza olanak tanır.