> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Ürünü

> Apinizer'da API'lerinizi portal üzerinden son kullanıcılara sunmak için oluşturulup yayınlanabilir ürünlerdir. Bir veya birden fazla API'yi bir araya getirerek farklı fiyatlandırma planları, dokümantasyon ve görünürlük ayarları ile portal kullanıcılarına sunar ve API monetizasyonu sağlar.

<CardGroup cols={2}>
  <Card title="API Paketleme" icon="box">
    Portal'da yayınlanacak API'lerin paketlenmesini ve sunulmasını sağlar
  </Card>

  <Card title="Fiyatlandırma" icon="dollar-sign">
    Free, Subscription, Metered ve Tiered planları ile API monetizasyonu yapabilir
  </Card>

  <Card title="Dokümantasyon" icon="book">
    API dokümantasyonu ve örnek kullanımları paylaşır
  </Card>

  <Card title="Görünürlük Kontrolü" icon="eye">
    Public, Private ve Authorized Organizations görünürlük ayarlarını yönetir
  </Card>

  <Card title="Abonelik Yönetimi" icon="users">
    Kullanıcı aboneliklerini ve API erişim izinlerini otomatik yönetir
  </Card>
</CardGroup>

## Yeni API Ürünü Oluşturma

<Frame caption="API Product Oluşturma Formu">
  <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_olusturma.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=995f9bceff6ac443e363884e2a14bbe3" alt="API Product Oluşturma Formu" width="1100" data-path="images/portal/api_urunu_olusturma.png" />
</Frame>

<Steps>
  <Step title="API Products Sayfasına Giriş">
    * Sol menüden Administration → Portal → API Products bölümüne gidin
    * Sağ üstteki **\[+ New API Product]** butonuna tıklayın
  </Step>

  <Step title="Genel Bilgileri Girme">
    <Accordion title="Select Project (Zorunlu)">
      * API Product'ın bağlı olacağı projeyi seçin
      * Admin projesi genellikle varsayılan olarak seçilir
    </Accordion>

    <Accordion title="Define your API Spec (Zorunlu)">
      İki seçenek sunulur:

      * **Get spec from API:** API'den otomatik olarak spec alınır (OpenAPI/Swagger)
      * **Upload spec source:** Manuel olarak spec dosyası yüklenebilir
    </Accordion>

    <Accordion title="Name (Zorunlu)">
      * API Product'ın benzersiz adı
      * Örnek: "Payment API", "SMS Gateway API"

      <Note>Bu ad Portal'da görünür, anlamlı olmalıdır</Note>
    </Accordion>

    <Accordion title="Name (TR) (İsteğe Bağlı)">
      * Türkçe ad
      * Çoklu dil desteği varsa kullanılır
    </Accordion>

    <Accordion title="Description (Zorunlu)">
      * API Product'ın detaylı açıklaması
      * Markdown formatını destekler
      * Portal'da kullanıcılara gösterilir
    </Accordion>

    <Accordion title="Description (TR) (İsteğe Bağlı)">
      * Türkçe açıklama
    </Accordion>

    <Accordion title="Image (İsteğe Bağlı)">
      * API Product görseli
      * **Format:** PNG, JPG, GIF
      * **Maksimum Boyut:** 2 MB
      * **Önerilen Boyut:** 400x300 px
      * Portal'da API Product kartında görünür
    </Accordion>

    <Accordion title="Categories (Zorunlu)">
      * API Product'ın ait olduğu kategoriler
      * Birden fazla kategori seçilebilir
      * Portal'da filtreleme için kullanılır

      <Info>[API Ürün Kategorileri](/tr/api-portal/api-urun-kategorileri) eklemek veya yönetmek için ilgili bağlantıyı ziyaret edebilirsiniz.</Info>
    </Accordion>

    <Accordion title="Responsible Unit (İsteğe Bağlı)">
      * Sorumlu birim/departman
      * Destek ve iletişim için kullanılır
      * Örnek: "API Geliştirme Ekibi", "Ödeme Sistemleri"
    </Accordion>
  </Step>

  <Step title="Create Butonuna Tıklama">
    * Sağ üstteki **"+ Create"** butonuna tıklayın

    **Sistem Kontrolleri:**

    1. Name alanı dolu mu?
    2. Name benzersiz mi? (Aynı isimde başka API Product var mı?)
    3. Kategori seçilmiş mi?

    **Başarılı Oluşturma:**

    * Başarı mesajı gösterilir
    * API Product düzenleme sayfasına yönlendirilirsiniz
    * Artık tablar (API Specification, Files, Documentation, Visibility and Plan) görünür hale gelir
  </Step>
</Steps>

## İlk Oluşturma Sonrası Yapılandırma

API Product oluşturduktan sonra, aşağıdaki adımları tamamlamanız önerilir:

| İşlem                                          | Açıklama                                                                                                                |
| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **API Specification Yapılandırması (Zorunlu)** | Hangi API Proxy veya Proxy Group'un kullanılacağını belirleyin<br />Environment seçin<br />API Spec kaynağını ayarlayın |
| **Documentation Ekleme (Önerilir)**            | Kullanıcılar için dokümantasyon sayfaları oluşturun<br />Örnek kullanımlar ekleyin                                      |
| **Visibility ve Plan Ayarlama (Zorunlu)**      | Görünürlük tipini belirleyin (Public/Private/Authorized)<br />Fiyatlandırma planları oluşturun                          |
| **Yayınlama (Son Adım)**                       | Tüm yapılandırmalar tamamlandıktan sonra **Publish** yapın                                                              |

## API Product Listeleme Ve Görüntüleme

<Frame caption="API Product Liste Ekranı">
  <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_liste.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=b7a3ed61521924830dda1843020f6e95" alt="API Product Liste Ekranı" width="1100" data-path="images/portal/api_urunu_liste.png" />
</Frame>

<Tabs>
  <Tab title="Listeleme">
    **Erişim:**

    * Manager → Administration → Portal → API Products

    **Görünüm Seçenekleri:**

    **1. Grid View (Kart Görünümü)**

    * Varsayılan görünüm
    * Her API Product bir kart olarak gösterilir
    * Görsel, ad, açıklama ve durum bilgileri görünür

    **2. List View (Liste Görünümü)**

    * Tablo formatında görünüm
    * Daha fazla detay görünür
    * Sıralama yapılabilir
  </Tab>

  <Tab title="Filtreleme ve Arama">
    **Mevcut Filtreler:**

    **1. Search by API Product**

    * API Product adına göre arama
    * Real-time arama (yazdıkça filtreler)

    **2. Search by API Proxies**

    * Belirli bir API Proxy kullanılan ürünleri filtreler
    * Dropdown'dan API Proxy seçilir

    **3. Search by API Proxy Groups**

    * Belirli bir Proxy Group kullanılan ürünleri filtreler
    * Dropdown'dan Proxy Group seçilir

    **4. Search by Status**

    * **Published:** Yayınlanmış ürünler
    * **Unpublished:** Yayınlanmamış (taslak) ürünler
    * **All:** Tümü
  </Tab>

  <Tab title="Sıralama">
    **Sıralama Seçenekleri:**

    * Name (A-Z, Z-A)
    * Created Date (Yeni → Eski, Eski → Yeni)
    * Status (Published → Unpublished)

    **Nasıl Sıralanır:**

    * Kolon başlıklarına tıklanır
    * Her tıklamada sıralama yönü değişir (ASC/DESC)
  </Tab>
</Tabs>

## API Product Detay Görünümü

<Frame caption="API Product Detay Sayfası">
  <img src="https://mintcdn.com/apinizer/pL6mQg9ekH4wvJ-E/images/portal/api_urunu_detay.png?fit=max&auto=format&n=pL6mQg9ekH4wvJ-E&q=85&s=786784b846274a5b773d750e07da6aa5" alt="API Product Detay Sayfası" width="1100" data-path="images/portal/api_urunu_detay.png" />
</Frame>

<Tabs>
  <Tab title="Detay Sayfasına Erişim">
    **Yöntem 1:** Liste'den tıklama

    * API Products listesinde bir ürüne tıklayın

    **Yöntem 2:** Düzenleme butonu

    * Üç nokta menüsünden "Edit" seçin

    **Yöntem 3:** Direct URL

    * `/admin/api-product/{id}/edit`
  </Tab>

  <Tab title="Detay Sayfası Bileşenleri">
    **Üst Kısım:**

    **1. Başlık ve Görsel**

    * API Product görseli (sol tarafta büyük ikon)
    * API Product adı
    * API Product başlığı/açıklaması

    **2. Hızlı Bilgiler**

    * **Store:** Portal'da Store'da gösterilip gösterilmeyeceği
    * **Automatically approve:** Otomatik onay durumu
    * **Try It active:** Try It özelliği aktif mi

    **3. İşlem Butonları**

    * **Configure:** Genel ayarları düzenle
    * **Back to List:** Liste sayfasına dön
    * **Published/Unpublished:** Yayın durumu (toggle butonu)

    **4. Bilgi Kartları**
    4 adet kart halinde özet bilgiler:

    * **Define your API Spec:** API Spec kaynağı
    * **Files:** Dosya sayısı
    * **Add Documentation:** Dokümantasyon sayısı
    * **Visibility:** Görünürlük tipi
  </Tab>

  <Tab title="Sekmeler">
    **1. API Specification** *(Varsayılan aktif tab)*

    * API kaynağı bilgileri
    * Ortam bilgileri
    * API uç nokta listesi

    **2. Files**

    * Yüklenmiş dosyalar
    * Dosya ekleme/çıkarma

    **3. Documentation**

    * Özel dokümantasyon sayfaları
    * Sayfa ekleme/düzenleme

    **4. Visibility and Plan**

    * Görünürlük ayarları
    * Fiyatlandırma planları
    * Authorized Organizations

    **5. Danger Zone**

    * Kritik işlemler
    * API Product silme
  </Tab>
</Tabs>

## API Specification Yapılandırması

**API Specification Nedir?**

**Tanım:** API Product'ın hangi API'yi temsil ettiğini ve nasıl kullanılacağını belirten yapılandırmadır.

**Temel Bileşenler:**

1. **API Source Type:** API Proxy veya Proxy Group
2. **API Proxy/Group:** Hangi API kullanılacak
3. **Environment:** Hangi ortamda (test, production, vb.)
4. **API Specification Source:** Spec nereden alınacak (API'den otomatik veya manuel upload)

<Frame caption="API Specification Yapılandırma">
  <img src="https://mintcdn.com/apinizer/pL6mQg9ekH4wvJ-E/images/portal/api_spec_yapilandirma.png?fit=max&auto=format&n=pL6mQg9ekH4wvJ-E&q=85&s=04b7e181b3a341c7f14f11465ef09136" alt="API Specification Yapılandırma" width="1100" data-path="images/portal/api_spec_yapilandirma.png" />
</Frame>

<Steps>
  <Step title="API Specification Tab'ına Giriş">
    API Product detay sayfası → **API Specification**

    Eğer henüz yapılandırılmamışsa: "Define your API Spec" kartı
    Yapılandırılmışsa: API bilgileri ve operations listesi
  </Step>

  <Step title="Configure Butonuna Tıklama">
    "Configure" butonuna tıklayın (sağ tarafta, kart üzerinde)
    "API Configuration" dialog açılır
  </Step>

  <Step title="API Source Type Seçimi">
    <Tabs>
      <Tab title="API Proxy">
        Tek bir API Proxy kullanılır
      </Tab>

      <Tab title="Proxy Group">
        * Birden fazla API Proxy'yi gruplar
        * Daha kompleks yapılar için
      </Tab>
    </Tabs>
  </Step>

  <Step title="API Proxy/Group Seçimi">
    **API Proxy Seçimi:**

    1. API Source Type olarak "API Proxy" seçili olmalı
    2. API Proxy dropdown'ından bir API seçin

    **API Proxy Group Seçimi:**

    1. API Source Type olarak "Proxy Group" seçili olmalı
    2. API Proxy Group dropdown'ından bir grup seçin
    3. Gruptaki tüm API'lerin birleşik spec'i kullanılır

    <Info>API Proxy ve Proxy Group **birlikte kullanılamaz.** Sadece birini seçmelisiniz. Seçim yaptıktan sonra environments listesi otomatik yüklenir.</Info>
  </Step>

  <Step title="Environment Seçimi">
    * Environment dropdown'ı otomatik olarak doldurulur
    * Seçilen API Proxy/Group'un deploy edildiği ortamlar listelenir
    * Bir environment seçilir

    <Note>Sadece deploy edilmiş ortamlar listelenir. Eğer API henüz deploy edilmemişse, önce API Manager'dan deploy yapılmalı. Portal kullanıcıları seçtiğiniz environment'taki API'yi kullanır.</Note>
  </Step>

  <Step title="API Specification Source Seçimi">
    <Tabs>
      <Tab title="Get from API (Önerilir)">
        * API'den otomatik olarak OpenAPI/Swagger spec alınır
        * Real-time güncel spec kullanılır
        * API'de yapılan değişiklikler otomatik yansır

        **Ne Zaman Kullanılır:**

        * API'nizde OpenAPI/Swagger spec varsa
        * Spec'i manuel olarak güncellemek istemiyorsanız
      </Tab>

      <Tab title="Upload spec source">
        * Manuel olarak spec dosyası yüklenir (JSON/YAML)
        * Statik spec kullanılır
        * Güncellemeler manuel yapılır

        **Ne Zaman Kullanılır:**

        * API'de spec yoksa
        * Özel spec kullanmak istiyorsanız
        * Spec'i düzenleyerek özelleştirmek istiyorsanız

        **Nasıl Yüklenir:**

        1. "Upload spec source" seçeneğini seçin
        2. **"+ Add Spec File"** butonuna tıklayın
        3. Dosya seçin:
           * **Format:** JSON veya YAML
           * **Maksimum Boyut:** 8 MB
           * **Desteklenen Spec:** OpenAPI 2.0, OpenAPI 3.0, Swagger
        4. (Opsiyonel) Çoklu dil desteği varsa Türkçe spec de yükleyin
      </Tab>
    </Tabs>
  </Step>

  <Step title="Save/Update">
    **"Save"** veya **"Update"** butonuna tıklayın
  </Step>
</Steps>

## Files (Dosyalar) Yönetimi

**Files Nedir?**

**Tanım:** API Product ile birlikte kullanıcılara sunulan ek dosyalardır.

**Kullanım Alanları:**

* SDK dosyaları (ZIP)
* Örnek kod dosyaları
* Postman collection dosyaları
* PDF kılavuzlar
* Sertifika dosyaları
* Test verileri

<Frame caption="Files Yönetimi">
  <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/files_yonetimi.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=a65072ae649e533dff7db46d66778501" alt="Files Yönetimi" width="1100" data-path="images/portal/files_yonetimi.png" />
</Frame>

<Steps>
  <Step title="Files Tab'ına Giriş">
    API Product detay sayfası → **Files**
  </Step>

  <Step title="Add Butonuna Tıklama">
    **"+ Add File"** butonuna tıklayın
    "Add File" dialog açılır
  </Step>

  <Step title="Dosya Bilgilerini Doldurma">
    **Name** *(Zorunlu)*

    * Dosya adı (görünen ad)
    * Örnek: "Java SDK", "Postman Collection", "API Guide"

    **File** *(Zorunlu)*

    * Yüklenecek dosya
    * **Maksimum Boyut:** Platform ayarlarına göre değişir
    * **Desteklenen Formatlar:** PDF, ZIP, JSON, XML, TXT, vb.

    **Description**

    * Dosya açıklaması
    * Ne içerdiği
    * Nasıl kullanılacağı
  </Step>

  <Step title="Save">
    **"Save"** butonuna tıklayın
  </Step>
</Steps>

<Tabs>
  <Tab title="Dosya İndirme">
    1. API Product sayfasında Files sekmesine git
    2. İndirmek istediği dosyayı bul
    3. "Download" butonuna tıkla
    4. Dosya indirilir
  </Tab>

  <Tab title="Dosya Düzenleme">
    1. Files listesinde dosyayı bulun
    2. Üç nokta menüsünden "Edit" seçin
    3. Değişiklikleri yapın
    4. "Save" butonuna tıklayın
  </Tab>

  <Tab title="Dosya Silme">
    1. Files listesinde dosyayı bulun
    2. Üç nokta menüsünden "Delete" seçin
    3. Onay dialogunda "Yes" deyin

    <Warning>Silme işlemi geri alınamaz</Warning>
  </Tab>
</Tabs>

## Dökümantasyon Yönetimi

**Dökümantasyon Nedir?**

**Tanım:** API Product ile birlikte sunulan özel dokümantasyon sayfalarıdır.

**API Specification ile Farkı:**

* **API Specification:** Otomatik oluşturulan, endpoint bazlı teknik dokümantasyon
* **Documentation:** Manuel oluşturulan, özel içerikli sayfalar

**Kullanım Alanları:**

* **Getting Started** (Başlangıç Kılavuzu)
* **Use Cases** (Kullanım Senaryoları)
* **Best Practices** (En İyi Uygulamalar)
* **Troubleshooting** (Sorun Giderme)
* **Migration Guides** (Geçiş Kılavuzları)
* **FAQ** (Sık Sorulan Sorular)
* **Changelog** (Değişiklik Geçmişi)

<Frame caption="Dökümantasyon Yönetimi">
  <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/dokumantasyon_yonetimi.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=e20975e5f9463c17c2106caa3ad17884" alt="Dökümantasyon Yönetimi" width="1100" data-path="images/portal/dokumantasyon_yonetimi.png" />
</Frame>

<Steps>
  <Step title="Documentation Tab'ına Giriş">
    API Product detay sayfası → Documentation tab
  </Step>

  <Step title="Add Page Butonuna Tıklama">
    **"+ Add Page"** butonuna tıklayın
    "Add Documentation Page" dialog açılır
  </Step>

  <Step title="Sayfa Bilgilerini Doldurma">
    **Name** *(Zorunlu)*

    * Sayfa adı
    * Portal'da menüde görünür
    * Örnek: "Getting Started", "Authentication Guide"

    **Slug** *(Zorunlu)*

    * URL'de kullanılacak kısa ad
    * Otomatik oluşturulur (name'den)
    * Özel karakter içermemeli
    * Örnek: "getting-started", "authentication-guide"

    **Content** *(Zorunlu)*

    * Sayfa içeriği
    * **Desteklenen Formatlar:**
      * **Markdown:** Önerilir
      * **HTML:** Zengin içerik için
  </Step>

  <Step title="Save">
    **"Save"** butonuna tıklayın
  </Step>
</Steps>

<Tabs>
  <Tab title="Dokümantasyon Sayfası Düzenleme">
    1. Documentation tab'ında sayfayı bulun
    2. Üç nokta menüsünden "Edit" seçin
    3. Değişiklikleri yapın
    4. "Save" butonuna tıklayın
  </Tab>

  <Tab title="Dokümantasyon Sayfası Silme">
    1. Documentation tab'ında sayfayı bulun
    2. Üç nokta menüsünden "Delete" seçin
    3. Onay dialogunda "Yes" deyin
  </Tab>
</Tabs>

## Visibility ve Plan Yönetimi

### Visibility (Görünürlük)

**Visibility Nedir?**

**Tanım:** API Product'ın Portal'da kimlerin görebileceğini ve erişebileceğini belirler.

<Tabs>
  <Tab title="PUBLIC (Herkese Açık)">
    * Portal'daki tüm kullanıcılar görebilir
    * Herkes abone olabilir
    * API Catalog'da listelenir

    **Ne Zaman Kullanılır:**

    * Genel API'ler için
    * Halka açık servisler
    * Marketing amaçlı API'ler
  </Tab>

  <Tab title="PRIVATE (Özel)">
    * Sadece yöneticiler görebilir
    * Normal kullanıcılar göremez
    * Özel davet gerekir

    **Ne Zaman Kullanılır:**

    * Beta API'ler
    * İç kullanım API'leri
    * Test aşamasındaki API'ler
  </Tab>

  <Tab title="AUTHORIZED_ORGANIZATIONS (Yetkili Organizasyonlar)">
    * Sadece seçilen organizasyonlar görebilir
    * Organizasyon üyeleri abone olabilir
    * Kısıtlı erişim

    **Ne Zaman Kullanılır:**

    * Partner API'ler
    * B2B entegrasyonlar
    * Kurumsal API'ler
  </Tab>
</Tabs>

<Frame caption="Visibility Yapılandırma">
  <img src="https://mintcdn.com/apinizer/cFKLnK4_FEpze_C9/images/portal/visibility_yapilandirma.png?fit=max&auto=format&n=cFKLnK4_FEpze_C9&q=85&s=351169e79c53dddb1f459d76843a9048" alt="Visibility Yapılandırma" width="1100" data-path="images/portal/visibility_yapilandirma.png" />
</Frame>

<Steps>
  <Step title="Visibility and Plan Tab'ına Giriş">
    API Product detay sayfası → **Visibility and Plan** tab
  </Step>

  <Step title="Configure Visibility">
    **"Configure"** butonuna tıklayın (Visibility kartında)
    "Configure Visibility" dialog açılır
  </Step>

  <Step title="Visibility Type Seçimi">
    <Tabs>
      <Tab title="PUBLIC Seçimi">
        1. "PUBLIC" seçeneğini seçin
        2. Başka ayar gerekmez
        3. "Save" butonuna tıklayın
      </Tab>

      <Tab title="PRIVATE Seçimi">
        1. "PRIVATE" seçeneğini seçin
        2. Başka ayar gerekmez
        3. "Save" butonuna tıklayın
      </Tab>

      <Tab title="AUTHORIZED_ORGANIZATIONS Seçimi">
        1. "AUTHORIZED\_ORGANIZATIONS" seçeneğini seçin
        2. "Save" butonuna tıklayın
        3. Ana sayfada **"+ Add Organization"** butonu görünür
        4. Bu butonla organizasyonları seçin
      </Tab>
    </Tabs>
  </Step>

  <Step title="Authorized Organizations Ekleme">
    *(Sadece AUTHORIZED\_ORGANIZATIONS için)*

    <Info>Yeni organizasyon eklemek veya düzenlemek için [kurumlar](/tr/admin/identity-management/kurumlar) linkini ziyaret edebilirsiniz.</Info>

    **Yapılacak İşlem:**

    1. **"+ Add Organization"** butonuna tıklayın
    2. Organization seçim dialogu açılır

    **Organization Seçimi:**

    1. Listeden organizasyonları seçin (checkbox)
    2. **"Select All"** ile tümünü seç/kaldır
    3. **"Add"** butonuna tıklayın

    **Seçilen Organizasyonlar:**

    * Visibility and Plan tab'ında listelenir
    * Her organizasyon için:
      * Ad
      * E-posta
      * Durum (Active/Inactive)
      * Kaldırma butonu (X)

    **Organizasyon Kaldırma:**

    1. Organizasyon satırında **X** butonuna tıklayın
    2. Onay dialogunda "Yes" deyin
    3. Organizasyon listeden çıkar
  </Step>
</Steps>

### Plan Yönetimi

**Plan Nedir?**

**Tanım:** API kullanımı için farklı fiyatlandırma ve limit seçenekleridir.

**Neden Plan Oluşturulur:**

* Farklı kullanıcı segmentlerine hitap etmek
* Kullanım limitlerini kontrol etmek

| Plan Tipi                              | Özellikler                                                                                                                          |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **FREE PLAN (Ücretsiz Plan)**          | Ücretsiz kullanım<br />Belirli limitler dahilinde<br />Throttling ve/veya Quota içerebilir                                          |
| **SUBSCRIPTION PLAN (Abonelik Planı)** | Dönemsel sabit ücret (aylık/yıllık)<br />Belirli kullanım limitleri dahilinde<br />Limit aşımında devam edip etmeyeceği seçilebilir |
| **METERED PLAN (Ölçümlü Plan)**        | Kullanım bazlı ücretlendirme<br />Her API çağrısı için sabit ücret<br />Pay-as-you-go modeli                                        |
| **TIERED PLAN (Kademeli Plan)**        | Kullanım arttıkça birim fiyat değişir<br />Farklı kullanım aralıkları için farklı fiyatlar<br />Volume discount (hacim indirimi)    |

<Steps>
  <Step title="Add Plan Butonuna Tıklama">
    Visibility and Plan tab → **"+ Add Plan"** butonu
  </Step>

  <Step title="Plan Type Seçimi">
    Dropdown'dan plan tipini seçin:

    * Free
    * Subscription
    * Metered
    * Tiered

    Seçilen plan tipine göre form alanları görünür
  </Step>

  <Step title="Plan Detaylarını Doldurma">
    <Tabs>
      <Tab title="FREE PLAN">
        **Enable Throttling** *(İsteğe Bağlı)*

        * Checkbox'ı işaretleyin
        * **Throttling Count:** Sayı girin (örn: 10)
        * **Throttling Interval:** Zaman aralığı seçin (Per Second, Per Minute)

        **Enable Quota** *(İsteğe Bağlı)*

        * Checkbox'ı işaretleyin
        * **Quota Count:** Sayı girin (örn: 1000)
        * **Quota Interval:** Zaman aralığı seçin (Per Hour, Per Day, Per Month)
      </Tab>

      <Tab title="SUBSCRIPTION PLAN">
        **Fee** *(Zorunlu)*

        * Abonelik ücretini girin (örn: 50)

        **Currency** *(Zorunlu)*

        * Para birimini seçin (USD, EUR, TRY)

        **Billing Period** *(Zorunlu)*

        * Ödeme dönemini seçin (Monthly, Annually)

        **Throttling** *(İsteğe Bağlı)*

        * Free Plan'deki gibi

        **Quota** *(İsteğe Bağlı)*

        * Free Plan'deki gibi

        **Continue on Exceed** *(İsteğe Bağlı)*

        * Checkbox: Quota aşıldığında devam edilsin mi?
        * Eğer evet ise **Fee on Exceed** girin
      </Tab>

      <Tab title="METERED PLAN">
        **Fee** *(Zorunlu)*

        * Çağrı başına ücret (örn: 0.01)

        **Currency** *(Zorunlu)*

        * Para birimi

        **Billing Period** *(Zorunlu)*

        * Faturalama dönemi
      </Tab>

      <Tab title="TIERED PLAN">
        **Billing Type** *(Zorunlu)*

        * Volume Based veya Transaction Based

        **Currency** *(Zorunlu)*

        * Para birimi

        **Billing Period** *(Zorunlu)*

        * Faturalama dönemi

        **Tiers (Kademeler)** *(Zorunlu)*

        * **"+ Add Tier"** butonuyla kademe ekleyin
        * Her kademe için:
          * **Calls From:** Otomatik doldurulur
          * **Calls To:** Bitiş sayısı girin
          * **Fee:** Bu kademenin birim fiyatı

        **Continue on Exceed** *(İsteğe Bağlı)*

        * Son kademe sonrası devam?

        **Fee on Exceed** *(İsteğe Bağlı)*

        * Son kademe sonrası fiyat
      </Tab>
    </Tabs>
  </Step>

  <Step title="Save Plan">
    **"Save"** butonuna tıklayın

    * Plan doğrulaması yapılır
    * Plan kaydedilir
    * Plan listesine eklenir
  </Step>
</Steps>

## API Product Silme

<Frame caption="API Product Silme">
  <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_silme.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=4086a049bc2acce962bfaadf6088520e" alt="API Product Silme" width="1100" data-path="images/portal/api_urunu_silme.png" />
</Frame>

<Steps>
  <Step title="Danger Zone Tab'ına Giriş">
    API Product detay sayfası → **Danger Zone** tab
  </Step>

  <Step title="Delete Butonuna Tıklama">
    **"Delete API Product"** butonuna tıklayın
    Onay dialogu açılır
  </Step>

  <Step title="Onay Verme">
    **"Evet, Sil"** butonuna tıklayın
  </Step>

  <Step title="Silme İşleminin Tamamlanması">
    * Tüm aktif abonelikler iptal edilir
    * Kullanıcı erişim izinleri kaldırılır
    * Files silinir
    * Documentation sayfaları silinir
    * Plans silinir
    * API Product kaydı silinir
  </Step>
</Steps>

## API Product Yayınlama ve Yayından Kaldırma

| İşlem                             | Adım 1                                                                                             | Adım 2                                                        | Adım 3                                                                                                      |
| --------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| **Yayınlama (Publish)**           | Publish Butonuna Tıklama<br />API Product detay sayfası → Sağ üst → **"Publish"** butonu (yeşil)   | **Onay Verme**<br />**"Evet, Yayınla"** butonuna tıklayın     | Yayınlama<br />`published` durumu `true` yapılır.<br />Durum badge'i **"Published"** (yeşil) olur           |
| **Yayından Kaldırma (Unpublish)** | Unpublish Butonuna Tıklama<br />API Product detay sayfası → Sağ üst → **"Unpublish"** butonu (gri) | Onay Verme<br />**"Evet, Yayından Kaldır"** butonuna tıklayın | Yayından Kaldırılma<br />`published` durumu `false` yapılır<br />Durum badge'i **"Unpublished"** (gri) olur |

## API Portal Arayüzünde Görünümü

### Genel Bakış

API Product, Apinizer API Manager'da yayınlanan API paketlerinin, API Portal üzerinden son kullanıcılara ve uygulamalara sunulan yüzüdür.

Her ürün; görünürlük ayarları, çoklu fiyatlandırma planları (Free, Subscription, Metered, Tiered), dokümantasyon, dosyalar, deneme (Try It) ve analytics kabiliyetleriyle birlikte gelir.

Portal kullanıcıları bu ürünleri inceleyebilir, planlara abone olabilir, Try It konsolu üzerinden çağrı yapabilir ve aboneliklerini yönetebilir.

### Roller ve Ön koşullar

* **Portal Manager / Portal Business**: Tüm ürünleri ve yönetimsel seçenekleri görür. Ayrıca gelişmiş diyalogları (ör. API product selection) kullanabilir.
* **Standart Portal Kullanıcısı**: Görünürlüğü kendisine açık (Public veya yetkilendirildiği organizasyon) ürünleri görür.
* **Abonelik** başlatmak için:
  * Portal hesabınızla giriş yapmış olmanız gerekir.
  * En az bir **Portal App** tanımınız olmalıdır (yoksa detay sayfasından oluşturabilirsiniz).
* Ürün içeriği (plan, doküman, dosya) API Manager'da hazırlanır; Portal tarafında sadece tüketilir.

### API Product Liste Sayfası

<Frame caption="API Product Portal Liste Sayfası">
  <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_portal_liste.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=13fdc33b19b08b830d3a63b4566c1d2a" alt="API Product Portal Liste Sayfası" width="1100" data-path="images/portal/api_urunu_portal_liste.png" />
</Frame>

**Erişim:**

* Menü: **Portal → API Products**.
* Sayfanın üstündeki spot metin portal ayarlarından yönetici tarafından özelleştirilebilir

**Sol Panel (Kategori Ağacı)**

* Kategoriler PrimeNG panelleri şeklinde listelenir. Her kategori başlığına tıklayarak içinde yer alan API ürünlerini görebilirsiniz.
* Arama kutusu hem kategori ağacını hem de sağdaki kart listesini filtreler; yazdıkça debounce'lu arama yapılır.

**Sağ Panel (Kart Liste)**

* Her kategori için ürün kartları grid düzeninde listelenir.
* Kart içeriği:
  * Ürün adı ve isteğe bağlı görseli.
  * Yayın durumu (yeşil/pembe ikon), API tipi, son güncelleme tarihi.
  * Açıklamanın ilk 300 karakteri; uzun metinler tooltip ile tam haliyle görüntülenebilir.
  * "Explore API" butonu ürün detay sayfasına yönlendirir.
* Kategori seçimi, "Tümü"ne dönmek için temizle butonuyla sıfırlanabilir.

### API Product Detay Sayfası

<Frame caption="API Product Portal Detay Sayfası">
  <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_portal_detay.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=ee8197673ee5f7faf10b82893636d82d" alt="API Product Portal Detay Sayfası" width="1100" data-path="images/portal/api_urunu_portal_detay.png" />
</Frame>

* Sol panelde yine kategori ağacı yer alır; başka ürüne geçmek için sayfayı terk etmeden tıklayabilirsiniz.
* Üstte ürün adı, kısa açıklama, yayın durumu (Active/Passive), API tipi, otomatik onay bilgisi ve son değişiklik tarihi gösterilir.
* "Access URL" bağlantısı (OpenAPI veya WSDL) doğrudan erişim sağlar; yanındaki "Download" butonu spec dosyasını indirir.

| Sekme             | Açıklama/ İşlev                                                                                                                                                                                                                                                                                                                                                    | Görünüm                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Overview          | - Zengin biçimli ürün açıklaması (`getDescription()` sanitize edilerek).<br />- Tüm plan kartlarının listesi (Free/Subscription/Metered/Tiered).<br />- Varsa sorumlu birim bilgileri (adı, iletişim kişisi, e-posta ve harici bağlantı).                                                                                                                          | <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_portal_overview.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=b71390b3dfac70a06fe3456c8c1d16ae" alt="Overview Sekmesi" width="400" height="300" style={{ borderRadius: '0.5rem' }} data-path="images/portal/api_urunu_portal_overview.png" />                                     |
| API Specification | - Kimlik doğrulama özeti (Auth türü, kullanıcı adı/şifre header alanları, JWT parametreleri).<br />- Endpoint listesi Accordions yapısında; parametre tablosu, request/response içerikleri, örnekler.<br />- Kod örnekleri (Shell, Python, JavaScript, Go, Java, C#, Node, Ruby) ve kopyalama butonları.<br />- "Authorize" ve "Try It" aksiyonlarıyla canlı test. | <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_portal_spec.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=439f1202d949a654bf23f93b9bd1214c" alt="API Specification Sekmesi" width="400" height="300" style={{ borderRadius: '0.5rem' }} data-path="images/portal/api_urunu_portal_spec.png" />                                                            |
| Documentation     | - Yayınlanmış portal doküman sayfaları markdown/HTML olarak gösterilir.<br />- Ürün yayınlanmamışsa kilit ikonlu uyarı çıkar.                                                                                                                                                                                                                                      | <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_portal_doc.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=34d7a7864a880a15ea343f034923985f" alt="Documentation Sekmesi" width="400" height="300" style={{ borderRadius: '0.5rem' }} data-path="images/portal/api_urunu_portal_doc.png" />                                                                        |
| Applications      | - Kaç Portal App'in hangi planlara abone olduğunu listeler.<br />- Her abonelik satırında planın throttling/quota/fiyat bilgileri özetlenir.<br />- Onay bekleyen, reddedilen veya aktif abonelik durumları ikonlarla gösterilir.<br />- Aynı alandan yeni abonelik başlatılabilir veya uygun durumdaysa "Unsubscribe" yapılabilir.                                | <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_portal_applications.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=e59764e805c91512139b1d60d24c62f0" alt="Applications Sekmesi" width="400" height="300" style={{ borderRadius: '0.5rem' }} data-path="images/portal/api_urunu_portal_applications.png" /> |
| Analytics         | *(Portal ayarlarında Analytics açık ve kullanıcı giriş yapmışsa)*<br />- `jhi-api-product-analytics` bileşeni dashboard ve trafik grafiklerini getirir.                                                                                                                                                                                                            | <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_portal_analytics.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=a5da4c9b9a44a01829d8d5c45ea9860e" alt="Analytics Sekmesi" width="400" height="300" style={{ borderRadius: '0.5rem' }} data-path="images/portal/api_urunu_portal_analytics.png" />                            |
| Files             | - Ürüne bağlı dosya listesi tablo halinde gösterilir; indirme butonları bulunur.                                                                                                                                                                                                                                                                                   | <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_portal_files.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=2a2dba7a8095f7412bac7c092d2bc3b0" alt="Files Sekmesi" width="400" height="300" style={{ borderRadius: '0.5rem' }} data-path="images/portal/api_urunu_portal_files.png" />                                                                |

### API Specification ve Test Konsol

**Authentication Özeti**

* API'nin ihtiyaç duyduğu kimlik doğrulama tipi (No Auth / Plain Text / Basic / JWT) net olarak gösterilir.
* Plain Text: kullanıcı adı/şifre hangi header'da gönderilecek, portal credential'dan hangi alanın çekileceği belirtilir.
* JWT: token sunucusu adresi, client bilgileri ve grant type bilgisi listelenir.

**Authorize Diyaloğu**

* Login olmayan kullanıcı için giriş sayfasına yönlendirme yapılır.
* Login olan kullanıcı; abone olduğu planlar için mevcut credential'ları seçebilir.
* Kimlik tipine göre Authorization header'ları (Basic, Bearer vb.) otomatik hazırlanır ve test konsoluna aktarılır.
* İlgili Portal App'e bağlı credential yoksa uyarı alınır.

**Endpoint Accordions**

* Her endpoint için:
  * Summary ve description alanları.
  * Parametre tablosu (name, typeIn, zorunluluk, örnek).
  * Request body – medya tipi bazında şema ve örnekler.
  * Response listesi – durum kodu, medya tipi, örnek.
  * Try It butonu (Try It devrede ise).

**Test Konsolu (Try It)**

* Endpoint dialogu genişletilebilir p-dialog içinde açılır.
* HTTP metodu dropdown'dan değiştirilebilir, URL parametreleri dinamik olarak güncellenir.
* Query/header/path parametreleri ekleyip çıkarabilirsiniz.
* Request body editörü JSON/XML örneğiyle hazır gelir; test butonu isteği gönderir.
* Yanıt editöründe status koduna göre renklendirme yapılır; `lbl-color-success` vs.
* SOAP endpoint'lerde WSDL indirme bağlantısı, REST endpoint'lerde OpenAPI indirilebilir.
* JSON imzalama ve WS-Security diyalogları ile güvenlik testleri yapılabilir (ileri seviye).

**API Spesifikasyon Sekmesindeki Kod Örnekleri**

Portal'de bir API ürününün detayına girip API Spefication sekmesini açtığımızda, her endpoint kartının sonunda Kod örnekleri başlıklı bir bölüm vardır. Bu bölümün hedefi, endpointlerin nasıl çağırılacağını farklı programlama dillerinde hazır şablonlarla göstermek ve çalıştırmaya birkaç saniyede başlayabilmenizi sağlamaktır.

<Frame caption="Kod Örnekleri">
  <img src="https://mintcdn.com/apinizer/brc6jW6AkAGwGExC/images/portal/api_urunu_kod_ornekleri.png?fit=max&auto=format&n=brc6jW6AkAGwGExC&q=85&s=b6f85eda565919699b4fb70796f368ef" alt="Kod Örnekleri" width="1100" data-path="images/portal/api_urunu_kod_ornekleri.png" />
</Frame>

**Nasıl Çalışır?**

| Adım                       | Açıklama                                                                                                                                                                                                                                                                                                                       |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Endpoint'i Seçin           | - Ürün detayında **API Specification** sekmesini açın.<br />- Sol taraftan bir operasyon (GET/POST vb.) seçtiğinizde detay kartı açılır.<br />- Kartın en altında "Kod Örnekleri" alanını göreceksiniz.                                                                                                                        |
| Dil Sekmesini Seçin        | - Sekmeler Shell, Python, JavaScript, Go, Java, C#, Node ve Ruby olarak sıralanır.<br />- Kullanmak istediğiniz dili tıklayın; seçtiğiniz dilin örnek kodu otomatik oluşturulur.<br />- Her dilde Apinizer tarafından önerilen en yaygın HTTP kütüphanesi kullanılır (örneğin Python için `requests`, Java için `HttpClient`). |
| Kodu İnceleyin             | - Kod parçacığı, o endpoint'in HTTP metodu, URL formatı, path parametreleri, query/header parametreleri ve varsa örnek gövdesiyle birlikte hazır gelir.<br />- Parametreler OpenAPI spesifikasyonundaki örneklere göre doldurulduğu için dokümantasyonla daima uyumludur.                                                      |
| Tek tıkla Kopyalayın       | - Kod kutusunun sağ üstündeki kopyalama ikonuna basarak örneği panoya alabilirsiniz.<br />- Panoya başarıyla kopyalandığında portal kısa bir bildirim gösterir.                                                                                                                                                                |
| Kendi Ortamınıza Uyarlayın | - Kod örnekleri temel iskeleti sağlar.<br />- Gerekirse kimlik doğrulama bilgilerinizi ekleyin, parametre değerlerini ihtiyacınıza göre değiştirin ve uygulamanıza yapıştırın.                                                                                                                                                 |

**Neden Kullanmalısınız?**

* **Hızlı Başlangıç:** "Bu API'yi nasıl çağıracağım?" sorusuna saniyeler içinde yanıt bulursunuz.
* **Dil Esnekliği:** Farklı ekipler (Python, Java, Node, Go vb.) kendi diline uygun örneğe anında erişir.
* **Güncel Kalır:** Örnekler API'nin OpenAPI spesifikasyonundan üretildiği için endpoint güncellendiğinde kod da otomatik uyarlanır.
* **Kopyala & Çalıştır:** Hazır şablon, test veya entegrasyon sürecine hız kazandırır.

### Dokümantasyon ve Dosyalar

**Documentation Sekmesi**

* Sadece yayınlanmış ürünlerde görünür; yayın dışı ürünler için kilit ikonlu bilgilendirme yapılır.
* Birden fazla doküman varsa başlıklar arasında sekme yapısız bağlantı listesi bulunur.
* Markdown içerikler GitHub tarzı stillerle render edilir; HTML içerik `innerHTML` ile güvenli şekilde gösterilir.

**Files Sekmesi**

* `p-table` ile dosya adı, açıklaması, boyutu listelenir.
* Her dosya satırında indirme butonu bulunur (`downloadFile`).
* Dosya yoksa bilgilendirme mesajı gösterilir.

### Analytics ve Kullanım Takibi

* Portal ayarlarında `enableAnalytics` açıksa ve kullanıcı giriş yapmışsa Analytics sekmesi görünür.
* Dashboard'da toplam çağrı, hata dağılımı, en popüler planlar gibi grafikler yer alır.
* Tarih aralığı değiştirilebilir (EnumDateRangeUsedComponents.API\_DASHBOARD).
* Bu modül `ApiProductAnalyticsCoreModule` üzerinden sağlanır.

## Portal–Manager İş Akışı

* API Product içeriğinin gerçek kaynağı API Manager'dır. Portal, yayımlanmış içeriği okur ve son kullanıcıya sunar.
* Portalda yapılamayan işlemler:
  * Plan metni / fiyatı değiştirme
  * Dokümantasyon sayfası güncelleme
  * API görünürlüğü değiştirme
  * Try It ayarlarını açma/kapama
* Bu değişiklikler API Manager'da yapılır; Portal sayfaları otomatik güncellenir.
* API Manager'da Publish durumu kapatıldığında Portal listesinden ürün otomatik düşer.

## Sık Sorulan Sorular

<Accordion title="API Product ile API Proxy arasındaki fark nedir?">
  **API Proxy:** Backend API'nin önündeki proxy/gateway, Teknik yapılandırma içerir, Policy'ler, routing, security ayarları, Developer/teknik ekip için

  **API Product:** Portal'da sunulan ürün, İş odaklı paketleme, Fiyatlandırma, dokümantasyon, görünürlük, Son kullanıcılar için hazırlanmıştır.

  * Bir API Product, bir veya birden fazla API Proxy içerebilir
  * Bir API Proxy, birden fazla API Product'ta kullanılabilir
</Accordion>

<Accordion title="Birden fazla environment için ayrı API Product oluşturmalı mıyım?">
  Hayır, gerekli değil.

  **Doğru Yaklaşım:** Bir API Product oluşturun, Environment'ları seçerek değiştirin

  **Nasıl Çalışır:**

  * API Product'ta bir environment seçersiniz (örn: Production)
  * Kullanıcılar bu environment'taki API'yi kullanır
  * Test için başka bir API Product oluşturabilirsiniz (opsiyonel)
</Accordion>

<Accordion title="Try It nedir ve nasıl kullanılır?">
  Portal'da API'yi doğrudan test etme özelliği

  Swagger UI benzeri interaktif arayüzü

  Kod yazmadan API'yi deneme
</Accordion>
