API Ürünü
Ne İşe Yarar?
- Gateway’deki API’leri portal vitrininde ürün olarak sunar
- Birden fazla proxy/proxy group’u tek üründe paketler
- Free / Flat rate / Metered / Tiered planlarla kota, rate limit ve onay politikası tanımlar
- Görünürlükle keşfedilebilirliği; plan onayıyla erişimi ayırır
- Abonelikleri org’a ait uygulamalar üzerinden izler
Kimler Kullanır?
-
Portal / Ürün Yöneticileri: Ürün oluşturmak, paketlemek, plan tanımlamak ve yayınlamak için
-
Geliştiriciler: Portalda ürünü keşfedip uygulama+plan ile abone olmak için
-
Destek / Operasyon: Abonelik ve kullanım özetini doğrulamak için
bilgi
Paketleme envanteri (hangi proxy hangi üründe?) → API Katalog.
Uygulama yaşam döngüsü / Unregister → Uygulama Yönetimi.
Test→Prod → Uygulama Promote.
Canlı kota/trafik → Trafik ve Kullanım.
:::
Ekrana Erişim
- Manager: Portal → API Products
- Developer Portal vitrin: üst menü API’ler (APIs)
- Yetki: Portal ürün yönetimi rollerine bağlıdır
Model
API Catalog (proxy / proxy group)
│ Select APIs from the Catalog
▼
API Product (proxyRefs + OpenAPI + Plans)
│ subscribe
▼
Portal App (organizasyon) + Plan → ApiProductAppRegister
│
▼
App credential + ACL (paketlenmiş proxy’ler)
- Abonelik = (uygulama, bu ürün, seçilen plan)
- Kota abonelik başına uygulanır
- Aynı proxy birden fazla üründe yer alabilir
- Canlı WAITING/APPROVED abonelik varken paketten API çıkarılamaz; yalnızca eklenebilir
Oluşturma (sihirbaz)
Yayınlanmamış ürün oluşturur. Tipik adımlar: General → APIs → API Spec → Plans → Environment → Summary.
| Konu | Kod gerçeği |
|---|---|
| API seçimi | Catalog’dan 1..n proxyRefs (proxy ve/veya group birlikte olabilir) |
| Spec | Ürüne yüklenen OpenAPI (JSON/YAML). Çoklu proxy’de tek proxy swagger’dan türetme yok |
| Yayın | Create sonrası Unpublished; ayrıca publish gerekir |
Manager detay sekmeleri
API Specification ve test konsol
Dökümantasyon yönetimi
| Sekme | Ne içerir |
|---|---|
| API Specification | Ürün OpenAPI / endpoint görünümü |
| Documentation | Portal doküman sayfaları |
| Files | İndirilebilir dosyalar |
| Plans | Active/Retired planlar; Duplicate; fiyat/onay; kota ve hız limiti doğrudan plan üzerinde sayı olarak girilir ve sistem bu sayılardan gateway'in uyguladığı limit profilini kendisi üretir. Katalogdan hazır bir profil seçmek gelişmiş bir seçenektir — bkz. Abonelik Planı Limit Profilleri |
| Subscriptions (N) | Salt okunur: org → app → plan + durum + kullanım özeti |
| Security | Paketlenen proxy’lerde tutarlı ACL-managed auth; hazır değilse publish engeli |
| Visibility | Keşfedilebilirlik (erişim/onay planlarda) |
| Danger Zone | Unpublish / Delete |
Manuel plan onayları ürün Subscriptions özetinde yapılmaz; API Product App Registers / Onay İstekleri tarafındadır.
Bu Subscriptions panelindeki kullanım özeti, trafiği yalnızca eski kullanıcı adı/parola credential'ı taşıyan uygulamalara değil, kimliği tipli bir API İstemcisi (client id, trafik satırının username/key alanıyla eşleşir) olan uygulamalara da atfeder.
Plan tipleri
| UI (EN) | Anlam |
|---|---|
| Free | Ücretsiz |
| Flat rate | Sabit ücret (eski “Subscription” adı değil) |
| Metered | Kullanım bazlı |
| Tiered | Kademeli |
Her abonelikte tüketici tek plan seçer. Onay: plan seviyesinde Auto approval / Approval Required. Ürün seviyesinde auto-approve alanı deprecated’tir; dokümanda öğretilmez.
Plan editöründe aşım davranışı için Engelle (429) ve Devam et ve ücretlendir seçenekleri sunulur. Metered (Kullanım başına) ve Tiered (Kademeli) fiyatlama tiplerinde her çağrı zaten faturalandığı için Engelle seçeneği ekranda pasiftir ve seçilemez — bu fiyatlama tiplerinde aşımda istek reddedilmez, yalnızca sayılır. Planın fiyatlama tipini Metered veya Tiered'a değiştirdiğinizde, önceden Engelle seçili olsa bile aşım seçimi otomatik olarak Devam et ve ücretlendir'e döner.
Abonelik Planı Limit Profilleri
Plan ekranında girdiğiniz hız limiti ve kota değerleri, gateway'in fiilen uyguladığı limitlerdir. Kaydettiğinizde sistem bu sayılardan plana ait bir İstek Hızı limit profili üretir, yayınlar ve planın onaylı tüm aboneliklerini bu profile bağlar. Sayıları değiştirdiğinizde profil yeni bir sürümle güncellenir; sayıları tamamen kaldırdığınızda profil emekliye ayrılır ve o plan için limit uygulanmaz.
Bu profil kataloğa da yazılır ama düzenlemeye kapalıdır ve varsayılan olarak listede görünmez — tek düzenleme noktası plan ekranıdır. Ayrıntı: Limit Planları.
Hız limiti ve kota en az 1 çağrıya izin vermelidir. 0 (ya da negatif bir sayı) girilerek kaydedilen bir plan, kaydedilmeden önce reddedilir ve hangi kutunun düzeltilmesi gerektiğini söyleyen bir uyarı gösterilir — sıfır limit hiçbir trafiğe izin vermez ve gateway'in uygulayabileceği bir profile dönüştürülemez. Bir planı hız limitsiz ya da kotasız bırakmak için sıfır yazmak yerine ilgili kutucuğun işaretini kaldırın.
İşaretli bir kutucuğun yanındaki sayıyı boş bırakmak da "limit yok" anlamına gelmez: Hız Limiti ya da Kota kutucuğu işaretliyken sayı zorunludur, kutunun altında bir uyarı çıkar ve sayı girilene kadar Kaydet düğmesi pasif kalır. O limiti kapatmak için kutucuğun işaretini kaldırın.
Dışa/içe aktarma ile — ya da bir portal kopyalamasıyla — gelen bir plan, limit profilini içe aktarmanın bir parçası olarak alır ve sayılarını hemen uygular; ayrıntı: Dışa/İçe Aktarma.
Eski bir sürümde oluşturulmuş bir planda, hiçbir profilin karşılamadığı bir hız limiti ya da kota görünüyorsa plan ekranı bu limitlerin gateway'de uygulanmadığını bildiren bir uyarı gösterir. Değerleri kontrol edip planı kaydedin; profil kaydetme sırasında oluşturulur ve uyarı kaybolur.
Gelişmiş: katalogdan hazır bir profil kullanma
Plan ekranındaki Gelişmiş — katalogdan bir limit profili kullan bölümünden, plana ait otomatik profil yerine katalogdaki hazır bir profili seçebilirsiniz. Bu seçim iki aile için ayrı ayrı yapılır:
| Değer | Anlamı |
|---|---|
| Kapalı | Bu aile için katalog profili kullanılmaz (İstek Hızı'nda: planın kendi sayıları geçerlidir). |
| Plan | Limit Planları kataloğundaki, platform kapsamlı ve yayınlanmış bir profile referans verir. |
- İstek Hızı için bir katalog profili seçtiğinizde, plandaki hız limiti ve kota kutuları pasifleşir ve kaydettikten sonra seçilen profilin pencerelerinden doldurulur; böylece portal, raporlar ve APIops hep fiilen uygulanan tavanı gösterir.
- Yalnızca platform kapsamlı ve yayınlanmış profiller seçilebilir; proje kapsamlı, taslak ya da başka bir abonelik planına ait profiller listede çıkmaz.
- Seçilen profilin ailesi, referansın ailesiyle (İstek Hızı / AI Token Bütçesi) eşleşmek zorundadır.
- Ürün planının aşım davranışı (Block 429 ya da Continue & charge) seçilen profilin aşım davranışıyla tutarlı olmalıdır: Continue & charge, yalnızca Yalnızca Say ya da yalnızca-uyar türünde bir profille; Block 429 ise yalnızca engelleyen bir profille eşleştirilebilir. Uyumsuz bir kombinasyon gönderilirse sunucu isteği
400 Bad Requestile reddeder. - Bir profil daha sonra güncellenirse (ör. aşım davranışı değiştirilirse), ona referans veren ürün planları üzerinde otomatik bir tutarlılık kontrolü çalışmaz — bu geriye dönük kontrol ileride eklenecektir.
Plana ait otomatik profilin aşım davranışı plandan türetilir: Continue & charge ya da Metered / Tiered fiyatlama, "engelleme, say" anlamına gelir; diğer durumlarda profil aşımda engeller. Bu yüzden otomatik profil için aşım uyumsuzluğu hatası oluşmaz.
Değişiklik Etki Önizlemesi
Yayında olan bir plan üzerinde Limit Profili referansı ya da aşım davranışı değiştirildiğinde, kaydetmeden önce ekran bu değişiklikten etkilenecek abonelik ve uygulama sayısını gösteren bir onay penceresi açar. Onaylamadan devam edilirse değişiklik kaydedilmez.
Tipli Limit Bağlama
Bir abonelik onaylandığında, seçilen plandaki Limit Profili referansları o abonelik sahibi uygulama için uygulama seviyesinde bir bağlama (binding) doğurur; bu bağlama uygulamanın tüm trafiğine uygulanır.
- Plan değişikliği aynı bağlamayı yeni plana taşır, sayaç sıfırlanmaz.
- Abonelik sona erdiğinde bağlama, aynı uygulamanın başka bir aktif aboneliğine devredilir (varsa); yoksa bağlama da sona erer.
- Aynı uygulama ve aynı plan ailesi için her zaman tek bir bağlama bulunur. İki farklı abonelik aynı aile için farklı bir profil istiyorsa, mevcut bağlama korunur; onay ekranında bu durum bir uyarıyla bildirilir ve profili değiştirmek isteyen operatör Profili Değiştir eylemiyle bilinçli bir geçiş yapar (bkz. Onay İstekleri).
- Birden çok projede kullanılan portal uygulamalarının bağlaması admin projesi altında tutulur.
Sürüm Yükseltmesi
Sürüm yükseltmesi elle bir işlem gerektirmez. Yükseltmede, kota/hız limiti değeri girilmiş her ürün planı için otomatik bir İstek Hızı limit profili oluşturulur (önceki sürümde oluşturulmuş otomatik profiller varsa yenisi açılmaz, mevcut olan devralınır), plan bu profile bağlanır ve onaylanmış aboneliklerin uygulama seviyesindeki bağlamaları da aynı adımda kurulur. Limit taşımayan planlar Kapalı kalır.
Aynı adımlar her gece yeniden çalışır; bir plan herhangi bir nedenle profilsiz kalırsa (içe aktarma, ortam terfisi, elle veri düzeltmesi) en geç ertesi gün kendiliğinden düzelir. Bağlama var olduğunda ne yaptığı için Limit Planları sayfasındaki Limitlerin Uygulanması bölümüne bakın.
Görünürlük
| Tip | Anlam |
|---|---|
| Public | Herkese keşfedilebilir |
| Only logged in Organizations | Oturum açmış kurumlara |
| Authorized Organizations | Yetkili kurum listesine |
Görünürlük = keşif. Abone olma onayı plan ayarındadır.
Danger Zone
- Unpublish: Vitrinden gizler; mevcut abonelikler çalışmaya devam edebilir
- Delete: Aktif abonelik varken engellenir
Developer Portal ürün sayfası
| Sekme | Koşul |
|---|---|
| Overview | Açıklama + plan kartları |
| API Specification | Auth özeti, endpoint, Try It |
| Documentation | Yayınlı doküman; unpublished ise kilit |
| Applications & Plans | Giriş şart — app bazında Register / + Add plan / Unregister |
| Dashboard & Traffic | Giriş + Features Analytics açık — dashboard + trafik tablosu |
| Files | Dosya listesi |
Abonelik consumer tarafında (ürün veya My Apps sihirbazları) başlar. Manager uygulama editinde yalnızca Unregister vardır.
Yayınlama kontrol listesi
- Catalog’dan API’leri paketle
- OpenAPI yükle
- En az bir Active plan tanımla (kota/rate/onay)
- Security hazır olsun
- Visibility ayarla
- Publish
- Gerekirse API Katalog ile paketleme durumunu doğrula