Azure API Management: API Gateway ve Geliştirici Portalı

API’ler modern yazılım mimarisinin temel yapı taşlarıdır. İç servisler arası iletişimden üçüncü parti entegrasyonlara, mobil uygulamalardan IoT cihazlarına kadar her nokta API’ler üzerinden haberleşir. Ancak API sayısı arttıkça yönetim karmaşıklığı da artar: güvenlik, erişim kontrolü, rate limiting, analitik, versiyon yönetimi ve dokümantasyon gibi cross-cutting concern’ler her API için tekrar tekrar uygulanması gereken sorumluluklar haline gelir. Azure API Management bu sorumluluları merkezi bir katmanda toplayarak API yaşam döngüsünü uçtan uca yönetmenize olanak tanır.

API Management Nedir?

Azure API Management (APIM), API’leriniz için bir gateway, yönetim platformu ve geliştirici portalı sunan tam yönetimli bir hizmettir. Frontend olarak dış dünyaya tutarlı bir API yüzeyi sunarken, backend’deki farklı servislerinize istekleri yönlendirir. Bu süreçte kimlik doğrulama, yetkilendirme, throttling, caching, dönüştürme ve loglama gibi işlemler gateway katmanında uygulanır. Backend servisleri bu kaygılardan arınır ve yalnızca iş mantığına odaklanır.

Temel Bileşenler

API Gateway

Gateway, tüm API trafiğinin geçtiği merkezi noktadır. Gelen istekleri alır, yapılandırılmış politikaları uygular ve backend servisine iletir. Politikalar üç aşamada çalışır: inbound (istek geldiğinde), backend (backend’e iletimde) ve outbound (yanıt döndüğünde). Her aşamada farklı politikalar uygulanabilir. Gateway aynı zamanda API çağrılarını loglar, metrikleri toplar ve Application Insights’a gönderir.

Yönetim Katmanı

Azure Portal, ARM şablonları veya REST API üzerinden API tanımları, ürünler (products), abonelikler (subscriptions) ve politikalar yönetilir. API tanımı OpenAPI (Swagger), WSDL veya GraphQL şemasından import edilebilir. Versiyon yönetimi ile aynı API’nin birden fazla sürümünü eş zamanlı çalıştırabilirsiniz. Revision sistemiyle mevcut sürüm üzerinde güvenli değişiklikler yapıp test edebilir, hazır olduğunda canlıya alabilirsiniz.

Geliştirici Portalı

APIM, API tüketicileri için otomatik oluşturulan bir geliştirici portalı sunar. Bu portal API dokümantasyonunu, interaktif test konsolu, API anahtarı yönetimi ve kullanım istatistiklerini içerir. Portalın görünümü özelleştirilebilir, şirket markanıza uygun hale getirilebilir. Harici geliştiricilere API’lerinizi açıyorsanız geliştirici portalı onboarding sürecini büyük ölçüde hızlandırır.

Politika Sistemi

APIM’in en güçlü özelliği XML tabanlı politika sistemidir. Politikalar istek ve yanıt akışının her noktasında müdahale imkanı sağlar.

Kimlik Doğrulama: validate-jwt politikasıyla OAuth 2.0 JWT token doğrulaması yapar, token geçersizse isteği 401 ile reddedersiniz. Azure AD, B2C veya herhangi bir OIDC sağlayıcısı ile çalışır. API key doğrulaması, certificate authentication ve mutual TLS de desteklenir.

Rate Limiting: rate-limit-by-key politikasıyla belirli bir süre diliminde izin verilen istek sayısını sınırlarsınız. Subscription bazlı, IP bazlı veya özel bir header değerine göre limit tanımlayabilirsiniz. Esto özellikle DDoS benzeri aşırı yükleme senaryolarını ve API kötüye kullanımını engeller.

Caching: cache-lookup ve cache-store politikalarıyla sık erişilen yanıtları önbelleğe alır, backend yükünü azaltırsınız. Önbellek süresi, vary-by parametreleri ve cache invalidation kuralları yapılandırılabilir.

Dönüştürme: set-header, set-body, rewrite-uri gibi politikalarla istek ve yanıtı dönüştürebilirsiniz. XML’den JSON’a çevrim, header ekleme veya kaldırma, URL yeniden yazma gibi işlemler backend koduna dokunmadan gateway katmanında yapılır.

Ürün ve Abonelik Modeli

APIM’de API’ler ürünler (products) altında gruplandırılır. Bir ürün bir veya birden fazla API içerir ve kendi erişim politikalarına sahiptir. Geliştiriciler ürünlere abone olarak API anahtarı elde eder. Farklı ürünlerle farklı erişim seviyeleri sunabilirsiniz: örneğin “Free” ürünü dakikada 10 istek limiti ile 2 API içerir, “Premium” ürünü dakikada 1000 istek limiti ile tüm API’lere erişim sağlar. Bu model API monetizasyonu için temel oluşturur.

Güvenlik ve Ağ Mimarisi

APIM’in güvenlik mimarisi çok katmanlıdır. Frontend tarafında SSL/TLS zorunluluğu, IP filtreleme, WAF entegrasyonu (Application Gateway ile) ve DDoS koruması uygulanabilir. Backend tarafında managed identity ile backend servislerine güvenli bağlantı, virtual network entegrasyonu ile backend’lerin private ağda tutulması ve client certificate ile mutual TLS sağlanabilir.

VNET entegrasyonu iki modda çalışır: External modda gateway public IP’ye sahiptir ama backend’lere VNet üzerinden erişir. Internal modda gateway da private IP’ye sahip olur ve yalnızca VNet içinden erişilebilir. Internal mod, kurumsal ortamlarda API’nin yalnızca VPN veya ExpressRoute üzerinden erişilebilir olmasını sağlar.

Fiyatlandırma Katmanları

APIM birkaç farklı katmanda sunulur. Consumption tier serverless modeldir, istek başına ücretlendirilir ve düşük trafik senaryoları için ekonomiktir. Developer tier geliştirme ve test amaçlıdır, SLA yoktur. Basic tier küçük üretim ortamları için uygundur. Standard tier orta ölçekli ortamlar için, Premium tier ise multi-region dağıtım, VNet entegrasyonu ve yüksek kapasite gerektiren kurumsal ortamlar içindir. Premium tier aylık yaklaşık 3.000 USD’den başlar ve kurumsal özellikleri haklı kılar.

API Design Best Practices

APIM üzerinden sunulan API’lerin tasarım kalitesi, geliştirici deneyimini doğrudan etkiler. RESTful API tasarım prensiplerine sadık kalın: kaynakları çoğul isimlerle adlandırın (/customers, /orders), HTTP metotlarını anlamlarına uygun kullanın (GET okuma, POST oluşturma, PUT güncelleme, DELETE silme), tutarlı hata yanıtları döndürün (RFC 7807 Problem Details formatı), pagination için standart query parametreleri kullanın (?page=1&pageSize=20).

API versiyonlama stratejinizi baştan belirleyin. APIM üç versiyonlama şemasını destekler: URL path (/v1/customers), query string (?api-version=2024-01-01) ve header (Api-Version: 1.0). Microsoft kendi Azure API’lerinde query string yaklaşımını kullanır. Hangi yaklaşımı seçerseniz seçin, tutarlı olun ve breaking change’lerde yeni versiyon oluşturun.

Monitoring ve Analitik

APIM, Application Insights ile derin entegrasyon sunar. Her API çağrısının süresi, yanıt kodu, istek/yanıt boyutu ve hata detayları kaydedilir. Custom dimensions ile abonelik kimliği, ürün adı ve operasyon kimliği filtreleri kullanılabilir. Azure Monitor dashboardlarıyla gerçek zamanlı API trafiğini izleyebilir, anomali tespiti alertleri kurabilirsiniz.

Built-in analytics sayfası en çok çağrılan API’leri, hata oranlarını, ortalama yanıt süresini ve coğrafi dağılımı gösterir. Bu veriler kapasite planlaması, SLA takibi ve API optimizasyonu için değerlidir. Report export özelliğiyle verileri Excel veya Power BI’da analiz edebilirsiniz.

Sık Sorulan Sorular

GraphQL API’leri APIM üzerinde yönetebilir miyim?
Evet. APIM, GraphQL API’leri native olarak destekler. GraphQL şemasını import ederek schema validation, field-level authorization ve query depth limiting uygulayabilirsiniz. Synthetic GraphQL özelliğiyle mevcut REST API’lerinizi APIM katmanında tek bir GraphQL endpoint altında birleştirmek de mümkündür.

Self-hosted gateway nedir?
Self-hosted gateway, APIM gateway bileşenini container olarak on-premise veya başka bulut ortamlarında çalıştırmanızı sağlar. Bu özellik hybrid ve multi-cloud senaryolarında API trafiğinin lokal olarak yönetilmesi gereken durumlar için tasarlanmıştır. Gateway yönetimi hala Azure’dan yapılır, politikalar senkronize edilir, ancak trafik lokal gateway üzerinden akar.

APIM ile Azure Front Door birlikte kullanılmalı mı?
Evet, özellikle global API dağıtımında bu kombinasyon güçlüdür. Front Door global yük dengeleme, DDoS koruması ve WAF sağlarken APIM API yönetimi, rate limiting, authentication ve developer portal sunar. Front Door backend olarak APIM’e yönlendirilir ve multi-region APIM deploymentlarında trafik en yakın bölgeye dağıtılır.

Sonuç

Azure API Management, API yaşam döngüsünün tamamını kapsayan güçlü bir platformdur. Güvenlik, performans, analitik ve geliştirici deneyimi konularında merkezi yönetim sağlar. API ekonomisi stratejinizin temel altyapı bileşeni olarak konumlandırılabilir.

Cloudspark API stratejisi ve yönetimi hizmetlerimizle APIM kurulumu, yapılandırması ve optimizasyonu konusunda destek sağlıyoruz.

🇹🇷 Türkçe🇬🇧 English🇩🇪 Deutsch🇫🇷 Français🇸🇦 العربية🇷🇺 Русский🇪🇸 Español