Mesaj İşleme ve Politika Uygulama
Mesaj Akışı ve Pipeline Yapısı
İstemci ve Backend API
İstemci ile Backend API arasındaki akış şu elementlerle gösterilmektedir:
- İstemciden çıkıp Backend API'ye giden istek mesajını sembolize eden bir ok
- Backend API'den çıkıp İstemciye giden yanıt mesajını sembolize eden bir ok
- İstek ya da yanıt mesajı üzerinde uygulanan politikaları ve uygulanma sırasını gösteren ikonlar
İstemci: Arayüzde sol taraftaki çerçeve içinde gösterilir. API Proxy'e istek gönderen paydaştır. Akışı başlatır. İstemciden çıkan mesaj, politikalar uygulandıktan sonra Backend API'ye ulaşır.
Backend API: API Proxy ile istemcinin doğrudan erişimine kapatılan ve istemciden saklanan, istekleri API Proxy'den alıp yanıtlarını API Proxy'e döndüren orijinal API'dir. Arayüzünde sağ taraftaki çerçeve ile gösterilir. Backend API'nin yanıtı, politikalar uygulandıktan sonra İstemciye gönderilir.
Backend API kutusundaki API bağlantısına tıklandığı zaman Backend API'nin API Tanım Belgesi görüntülenir.
Bu bölümde politikaların detaylarına girilmeyecektir. Politikalarla ilgili detaylı bilgi için Politika Nedir? sayfasına bakılabilir.
Request Pipeline (İstek Boru Hattı)
Request Pipeline, istemciden gelen isteklerin backend'e gönderilmeden önce işlendiği pipeline'dır.
Request Pipeline Akışı
Request Pipeline şu aşamalardan oluşur:
- Pre-flow Politikaları: Güvenlik ve doğrulama
- Koşullu Politikalar: Koşullu işlemler
- Yönlendirme Adımı: Backend'e yönlendirme
Response Pipeline (Yanıt Boru Hattı)
Response Pipeline, backend'den gelen yanıtların istemciye gönderilmeden önce işlendiği pipeline'dır.
Response Pipeline Akışı
Yanıt akışı şu sırayla işlenir:
- Post-flow Politikaları (Yanıt): Yanıt dönüştürme
- Koşullu Politikalar: Koşullu işlemler
- Loglama: İşlem kaydı (Asenkron)
- İstemci Yanıtı: İstemciye yanıt
Error Pipeline (Hata Boru Hattı)
Error Pipeline, hata durumlarının işlendiği pipeline'dır. Request veya Response pipeline'ında bir hata oluştuğunda Error Pipeline devreye girer.
Error Pipeline Akışı
Hata durumunda şu akış izlenir:
- Fault Handler Politikaları: Hata yakalama politikaları
- Hata Dönüştürme: Hata mesajı dönüştürme
- Hata Loglama: Hata kaydı
- Hata Yanıtı: İstemciye hata yanıtı
Hata Durumunda Politikaların İşletilme Sırası
Hata durumunda işletilecek olan politikalar "Hata Politikası Ekle" seçeneği ile eklenir.
Akışın herhangi bir noktasında hata olması durumunda normal akış kesilerek öncelikle varsa hata yanıt şablonu hata mesajına uygulanır.
Sonrasında "Hata Politikaları" hattına eklenen politikalar sağdan sola doğru sırasıyla işletilir.
Koşullu Politika Çalıştırma
Politikalar koşullara bağlı olarak çalıştırılabilir. Koşullu politika çalıştırma, mesaj içeriğine, header değerlerine, query parametrelerine, IP adresine, zaman bazlı koşullara veya sistem değişkenlerine göre farklı politikaların uygulanmasını sağlar.
Koşullu politika çalıştırma hakkında detaylı bilgi için Koşullu Politika Çalıştırma sayfasına bakabilirsiniz.
Politika Yönetimi
Politikalar, istek ve yanıt mesajları üzerinde gerçekleştirilmesi istenen güvenlik, mesajları filtreleme, doğrulama, dönüştürme ya da zenginleştirme, kısmen iş mantığı uygulama, hata yönetimi vb. işlemleri tarif etmek üzere yapılan konfigürasyonlardır. API Gateway, İstemci ile Backend API arasındaki mesaj akışı sırasında, bu konfigürasyonlar ile kendisine tanıtılan politikaları işletir.
Bu bölümde genel olarak politikalar üzerinde yapılabilecek işlemler anlatılmaktadır. Herhangi bir politika hakkında detaylı bilgi edinmek için Politika Nedir? sayfasından ilgili politikaya ilişkin dokümantasyona bakabilirsiniz.
Politikaların Yeri ve Çalışma Sırası
Politikalar 3 farklı noktaya eklenebilir:
- API Proxy Grubu
- API Proxy
- Metot/Endpoint
Bir API Proxy Grubuna eklenen bir politika, sadece istek API Proxy Grup üzerinden gelmiş ise işletilir.
Bir API Proxy'ye eklenen bir politika, o API Proxy'nin bütün metot/endpoint'leri için işletilir.
Bir metot/endpoint'e eklenen bir politika, yalnızca o metot/endpoint için işletilir.
Aşağıdaki görselde bu 3 noktaya da eklenmiş olan politikalara ilişkin bir örnek bulunmaktadır.
Görselde GET - findByStatus adlı metot/endoint'i seçilmiş olan API Proxy'nin, Proxy Group - 1 adlı bir API Proxy Grubu'na eklenmiş olduğu görülmektedir.
İşaretlenmiş olan alanlar, politikaların nereye eklendiğine bağlı olarak görüntülendikleri yerlerdir:
- 1 numaralı çerçeve ile işaretlenen alanda, bu API Proxy için herhangi bir metot/endpoint seçilmeden, bütün metot/endpoint'ler için geçerli olacak şekilde eklenmiş ve istek mesajlarına uygulanacak olan politikalar görülür. Hepsi (All) yazısı bunu ifade eder.
- 2 numaralı çerçeve ile işaretlenen alanda, seçilmiş olan metot/endpoint için geçerli olacak şekilde ve istek mesajlarına uygulanacak olan politikalar görülür.
- 3 numaralı çerçeve ile işaretlenen alanda, seçilmiş olan metot/endpoint için geçerli olacak şekilde ve yanıt mesajlarına uygulanacak olan politikalar görülür.
- 4 numaralı çerçeve ile işaretlenen alanda, bu API Proxy için herhangi bir metot/endpoint seçilmeden, bütün metot/endpoint'ler için geçerli olacak şekilde eklenmiş ve yanıt mesajlarına uygulanacak olan politikalar görülür. Hepsi (All) yazısı bunu ifade eder.
Bu API Proxy herhangi bir API Proxy Grubuna eklenmiş, eklenen API Proxy Grupta politikalar bulunuyor ve istek API Proxy Grup üzerinden geldiyse request hattındakiler uygulanır daha sonra response hattı üzerindeki politikalar da uygulanır. Ancak bu sayfada gösterilmez.
API Proxy'nin herhangi bir metot/endpoint'i için herhangi bir politikanın eklenmiş olması durumunda metot/endpoint yanında çark ikonu bulunur.
Eğer API Proxy'nin belirli bir metot/endpoint'i seçilmezse (ya da Hepsi (All)) seçilirse, aşağıdaki görselde gösterildiği gibi 2 bölge görünür.
- 1 numaralı çerçeve ile işaretlenen alanda, bu API Proxy'nin bütün metot/endpoint'leri için geçerli olacak şekilde eklenmiş ve istek mesajlarına uygulanacak olan politikalar görülür.
- 2 numaralı çerçeve ile işaretlenen alanda, bu API Proxy'nin bütün metot/endpoint'leri için geçerli olacak şekilde eklenmiş ve yanıt mesajlarına uygulanacak olan politikalar görülür.