API Proxy Grupları birden fazla API Proxy'nin bir grup halinde yönetilebilmesini sağlar.

API Proxy Grubuna eklenen politikalar ve uygulanan ayarlar, grupta yer alan tüm API Proxy'ler üzerinde etkin olur, böylece ortak politikalara ihtiyaç duyan API Proxy'ler için kullanım kolaylığı sağlanmış olur.

Bir API Proxy, sadece bir API Proxy Grubunda olabilir. Birden fazla bir API Proxy Grubuna eklenemez.

API Proxy Grubu Listesi

API Proxy Grubu listesi ilk açıldığında aşağıdaki görselde olduğu gibi mevcut API Proxy Grupları listelenir.


API Proxy Grubu Oluşturma

Yeni API Proxy Grup oluşturmak için API Proxy Grubu Listesi arayüzünde sağ üst köşedeki (plus) Yeni (Create) tuşuna tıklanır. 

Açılan formda yeni oluşturulacak API Proxy Grubunun Ad ve Açıklama alanlarından en az Ad bilgisi girilerek Kaydet (Save) tuşuna tıklanır.


Kaydetme sonrası, API Proxy Grubunun biçimlendirme arayüzü açılır.

API Proxy Grubunu Biçimlendirme

Genel Bakış (Overview), Ayarlar (Settings) ve Geliştirme (Development)  sekmelerinin biçimlendirmesi API Proxy'ninkilerle birkaç küçük farklılık dışında tamamen aynıdır.

Genel Bakış Sekmesi (Overview Tab)

Genel Bakış Sekmesi'ni içeren görsele aşağıda yer verilmiştir:


Genel Bakış Sekmesi konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.

AlanAçıklama

Ad

(Name)

API Proxy Grubunun adıdır. Zorunlu alandır.

Açıklama

(Description)

API Proxy Grubuna ilişkin açıklama/tanım bilgisidir. Girilmesi isteğe bağlıdır.

API Proxy Grubu Relative Path Durumu

(Enable Relative Path)

Seçildiği durumda API Proxy Grubuna direkt erişim mümkün hale gelir.

Geçit Adresi

(Relative Path)

API Proxy Grubuna erişim için kullanılacak sanal erişim adresidir. Geçit Adresini Aktive Et seçeneği işaretlenmişse görünür ve girilmesi zorunlu alandır.

Proxylere Direkt Erişimi Engelle

(Disable Direct Access to API Proxies)


API Proxy Grubuna erişim adresi verildiği durumda API Proxy'lere doğrudan erişim olması istenmeyebilir, bu durumda "API Proxy'lere Direkt Erişimi Engelle" seçeneği ile API Proxy Grubuna eklenmiş olan API Proxy'lere doğrudan erişim kapatılabilir. Bu özellik aktifken API Proxy Grubundaki herhangi bir API Proxy'nin kendi erişim adresine gelen istekler, adresin erişime kapalı olduğu hatasını alır.  

Ayarları ve Politikaları Proxylere Uygula

(Apply Settings and Policies to Related Proxies)

Geçit Adresini Aktive Et seçeneği işaretlenmediği durumda geliştirme sekmesindeki politikalar ve API Proxy Grup ayarları (CORS, Cache, Hata Yanıt Şablonu ve İletilen IP Başlığı) ve API Proxy Grup'a eklenmiş Politikalar tüm API Proxy'ler için geçerlidir.

Geçit Adresini Aktive Et seçeneğinin işaretlenmesi durumunda API Proxy Grup ayarlarının ve politikalarının uygulanması isteğe bağlı hale dönüşür. Bu sebeple bu seçenek seçili iken bu ayarların ve politikaların yine de uygulanması isteniyorsa Ayarları İlgili API Proxy'lere Uygula seçeneği seçilmelidir.

Ayarları İlgili API Proxy'lere Uygula seçeneği seçilmediği durumda, API Proxy Gruptaki ayarlar ve politikalar sadece istek Proxy Grup Geçit Adresi üzerinden geldiğinde uygulanır! 

Ayarları İlgili API Proxy'lere Uygula seçeneği açık iken CORS Ayarları

  • API Proxy Group'da aktif edilmiş ise, API Proxy'de aktif edilmiş ise iki ayardaki liste olan değerler birleştirilir, tekil olan değerler için API Proxy ayarları geçerli olur. 
  • API Proxy Group'da aktif edilmemiş ise, API Proxy'de aktif edilmiş ise API Proxy'deki ayarlar geçerlidir.
  • API Proxy Group'da aktif edilmiş ise, API Proxy'de aktif edilmemiş ise API Proxy Grup'taki ayarlar geçerlidir.

CORS harici diğer ayarlarda (Cache, Hata Yanıt Şablonu ve İletilen IP Başlığı)  "Ayarları İlgili API Proxy'lere Uygula" seçeneği açık iken önce API Proxy Grup'daki ayarın aktif olup olmadığına bakılır, aktif ise API Proxy Grup'daki ayar uygulanır. Aktif değilse API Proxy üzerindeki ayar uygulanır.

Politikaların uygulanma durumunu detaylı anlatımı için Geliştirme Sekmesi (Development Tab) sayfasında yer alan "Politikaların Yeri ve Çalışma Sırası" bölümünü inceleyebilirsiniz.

Proxy Grubu Anahtarı

(API Proxy Group Key)

API Proxy Grup üzerinden JWT veya OAuth2 yetkilendirmesi yapılmak istendiğinde ihtiyaç duyulan Genel ve Gizli Anahtarların yönetildiği bölümdür. Detaylı bilgi için bu anahtarların API Proxy için nasıl yönetildiğine bakınız.
API Proxy Grubu AyarlarıDetaylı bilgi için aynı ayarların API Proxy için nasıl yapıldığının anlatıldığı Genel Bakış Sekmesi (Overview Tab) sayfasına bakınız.

API Proxy Grup Anahtarı (API Proxy Group Key) Bölümü 

API Proxy Grubun erişim anahtarlarının yönetildiği bölümdür. Erişim anahtarları OAuth2 Kimlik Doğrulama Politikası için kullanılır. 

Client Id ve Client Secret değerleri otomatik olarak oluşturulur ve kullanıcı yenilerinin oluşturulmasını isteyebilir. Yüklenmiş bir API Proxy Grup için anahtarlardan herhangi birisi yeniden oluşturulursa, anahtarların geçerli olabilmesi için API Proxy Grubun yeniden yüklenmesi gerekir. 

API Proxy Grubu Swagger Arayüzünde Görüntüleme 

API Proxy Group deploy edildikten sonra Deployment bölümünde ilgili erişim adresine ait Göster (Show) butonu gelir. Bu butona tıklandığında API Proxy Grubun JSON formatındaki Open API specification bilgisine ulaşılır. 


Spec Info ayarlarını içeren diyalog görseline aşağıda yer verilmiştir:


API Tanım Dosyalarına Erişim  

Tanım dosyalarının içeriği, Show bağlantısına tıklandığında yukarıdaki şekilde görüldüğü gibi açılır ve buradan kopyalanabilir. Ancak bu yöntem Apinizer platformu üzerinde çalışmakta olan API Geliştirici, API Testçi gibi rollerden kullanıcılar içindir. İstemciler bu arayüzlere erişemez.

İstemciler, tanım dosyalarına erişmek için API Proxy Grup'un yüklenmiş olduğu Ortamdaki erişim adresini aşağıdaki şekilde kullanabilirler:

Örneğin API Proxy'nin Production Ortamındaki erişim adresi https://api.apinizer.com/apigateway/apiProxyGroup olsun.

Tanım dosyalarına erişim için aşağıdaki adreslere istek gönderilebilir;

Swagger 2.x (JSON)

  • https://api.apinizer.com/apigateway/apiProxyGroup?swagger
  • https://api.apinizer.com/apigateway/apiProxyGroup?swagger&format=json
  • https://api.apinizer.com/apigateway/apiProxyGroup?swagger.json

Swagger 2.x (YAML)

  • https://api.apinizer.com/apigateway/apiProxyGroup?swagger&format=yaml
  • https://api.apinizer.com/apigateway/apiProxyGroup?swagger.yaml

OpenAPI 3.x (JSON)

  • https://api.apinizer.com/apigateway/apiProxyGroup?openapi
  • https://api.apinizer.com/apigateway/apiProxyGroup?openapi&format=json
  • https://api.apinizer.com/apigateway/apiProxyGroup?openapi.json

OpenAPI 3.x (YAML)

  • https://api.apinizer.com/apigateway/apiProxyGroup?openapi&format=yaml
  • https://api.apinizer.com/apigateway/apiProxyGroup?openapi.yaml


Ayarlar Sekmesi (Settings Tab) 

Ayarlar sekmesi üzerinden API Proxy Grubu için aşağıdaki ayarlamalar yönetilebilir. Bu ayarların detayı için Ayarlar Sekmesi (Settings Tab) sayfasına bakınız.

  • CORS
  • Cache
  • XML Hata Yanıt Şablonunu Özelleştirme

  • JSON Hata Yanıt Şablonunu Özelleştirme
  • İletilen IP Başlık Parametreleri
  • Ignore Error Response Template: Error response template'in ignore edilmesi ayarı, API Proxy Group bazında ayarlanabilmektedir.
  • API Proxy Trafiği Log Ayarları

Ayarlar Sekmesi'ni içeren görsele aşağıda yer verilmiştir:


Geliştirme Sekmesi (Development Tab)

Geliştirme sekmesinde API Proxy Grubunun politikaları yönetilir. Detaylı bilgi için API Proxy için politikaların nasıl yönetildiğinin anlatıldığı Geliştirme Sekmesi (Development Tab) sayfasına bakınız.

Geliştirme Sekmesi'ni içeren görsele aşağıda yer verilmiştir:

API Proxy'ler Sekmesi (API Proxies Tab)

API Proxy Grup içerisinde yer alan API Proxy'ler ve Deployment bilgileri bu bölümden yönetilir. Eğer Geçit Adresini Aktive Et seçeneği aktifleştirilmiş ise Proxy Gruba ait URL bilgileri de bu tabloya eklenir.

Eğer API Proxy'lere Direkt Erişimi Engelle seçeneği aktif ise API Proxy'ye ait URL bilgileri bu tablodan kaldırılır.

API Proxy Grup içerisinde yer alan API Proxy'ler hiç deploy edilmemiş ise, URL kısmı boş gözükür.

API Proxy'ler Sekmesi'ni içeren görsele aşağıda yer verilmiştir:


Uç Noktaları Sekmesi (Endpoints Tab

Uç Noktaları Sekmesi'ni içeren görsele aşağıda yer verilmiştir:


Uç Nokta Detayını Görüntüleme

Uç noktaların detayını görüntülemek için satır sonunda yer alan butona tıklanır.


Uç nokta detayını içeren görsele aşağıda yer verilmiştir:


Bu ekranda eğer isteğin Tip bilgisi ya da yanıtın Model İçeriği bulunursa, tıklanarak detayı görüntülenebilir.


Aşağıdaki örneklerde kullanılacak adresler şunlar olsun:

"Geçit Adresini Aktive Et" seçeneği işaretlenmemiş ise

API Proxy Grubuna eklenmiş API Proxy'lere erişimde herhangi bir değişiklik olmaz. İstemciler, yüklendikleri Ortamlara göre oluşturulan adresleri aracılığıyla API Proxy'lere erişmeye devam eder.

GET isteğinin gönderileceği adres:

https://demo.apinizer.com/apigateway/petstore/pet/findByStatus?status=pending

"Geçit Adresini Aktive Et" seçeneği işaretlenmiş ise

Bu durumda, API Proxy'lerin metot/endpoint'lerine API Proxy Grubunun adresi üzerinden erişilebilir.

REST tipindeki API Proxy'nin bir metot/endpoint'ine erişim

Kullanılacak erişim adresi, API Proxy Grubu için belirtilen geçit adresine, erişilecek metot/endploint'in adresi eklenerek bulunur. Bu işlem sırasında API Proxy'nin kendi adresi dikkate alınmaz.

GET isteğinin gönderileceği adres:

https://demo.apinizer.com/apigateway/apiProxyGroup1/pet/findByStatus?status=pending

Bir metot/endpoint'e API Proxy Grubu üzerinden erişiliyorsa API Proxy'nin adresi dikkate alınmaz. Metot/endpoint sanki doğrudan API Proxy Grubuna aitmiş gibi davranılır ve Metot/endpoint için URL, API Proxy Grubunun adresi ile oluşturulur.


API Proxy Grubundaki REST tipindeki API Proxy'ler içinde aynı adresli metot/endpoint ve HTTP metoduna sahip birden fazla metot/endpoint varsa, istek ilk bulunan metot/endpoint'e gider. 


API Proxy grubunun içindeki herhangi bir API Proxy'ye ait path parametresi kullanan bir metot/enpoint'den dolayı, grup içindeki diğer API Proxy'lere ait bazı method/endpoint'lere erişilemez hale gelebilir.

SOAP tipindeki API Proxy'nin bir metot/endpoint'ine erişim

API Proxy Grubunun erişim adresine, çağrılmak istenen metodun SOAPAction header'ı ve ilgili SOAP mesajı ile istek göndermek yeterlidir. 

"API Proxy'lere Direkt Erişimi Engelle" seçeneği işaretlenmemişse

İstemciler API Proxy Grubuna eklenmiş olan API Proxy'lerin metot/endpoint'lerine API Proxy adresi üzerinden erişmeye devam edebilirler.

GET isteğinin gönderileceği adres:

https://demo.apinizer.com/apigateway/petstore/pet/findByStatus?status=pending

"API Proxy'lere Direkt Erişimi Engelle" seçeneği işaretlenmişse

API Proxy'nin adresine gönderilecek bir istek mesajına, API Proxy'nin doğrudan erişime kapatıldığını belirten bir hata mesajı döner.

GET isteğinin gönderildiği adres:

https://demo.apinizer.com/apigateway/petstore/pet/findByStatus?status=pending 

Dönen yanıt:

{
  "fault" : {
    "correlationId" : "c07b793b-e46a-4177-a11f-4a5d94d667ff",
    "faultCode" : "ERR-134",
    "faultString" : "Direct access to ApiProxy is disabled! Access this endpoint over ProxyGroup URL!",
    "faultStatusCode" : "401",
    "responseFromApi" : ""
  }
}
JS