> ## 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.

# Uygulama Yönetimi

> API Portal kullanıcılarının API ürünlerine erişmek için oluşturdukları uygulamaları yönetir. Her uygulama bir portal hesabına bağlıdır, benzersiz bir referans ID'ye sahiptir, bir veya birden fazla API Key'e sahip olabilir ve bir veya birden fazla API Product'a kayıt olabilir. API'lere güvenli erişim sağlar, API kullanımını uygulama bazında izler ve raporlar, API Key'lerini yönetir ve API Product aboneliklerini yönetir.

**Portal App Kullanım Amaçları**

* API'lere güvenli erişim sağlamak
* API kullanımını uygulama bazında izlemek ve raporlamak
* API Key'lerini yönetmek
* API Product aboneliklerini yönetmek

## API Manager'da Portal App Yönetimi

API Manager'da, yöneticiler tüm portal uygulamalarını görüntüleyebilir ve yönetebilir.

### Yeni Portal App Oluşturma

<Frame caption="Yeni Portal App Oluşturma">
  <img src="https://mintcdn.com/apinizer/PzXsU74TU9HyZpo3/images/portal/uygulama_yonetimi_yeni.png?fit=max&auto=format&n=PzXsU74TU9HyZpo3&q=85&s=21111a287d801872f12b6f2dfc8ac981" alt="Yeni Portal App Oluşturma" width="1100" data-path="images/portal/uygulama_yonetimi_yeni.png" />
</Frame>

<Steps>
  <Step title="Adım 1">
    Portal App listesi sayfasında sağ üstteki **"+ Create"** butonuna tıklayın
  </Step>

  <Step title="Adım 2">
    Açılan dialog'da aşağıdaki bilgileri doldurun:

    * **Account:** Açılır listeden uygulamanın bağlanacağı portal hesabını seçin (Zorunlu)
    * **Name:** Uygulama adı (Zorunlu, Max: 255 karakter)
    * **Reference ID:** Uygulamanın benzersiz ID'si (Zorunlu, otomatik UUID üretilir)
    * **Description:** Uygulama açıklaması (Opsiyonel)
  </Step>

  <Step title="Adım 3">
    **"Save"** butonuna tıklayın
  </Step>

  <Step title="Adım 4">
    Başarılı mesajı görüntülenir ve liste güncellenir
  </Step>
</Steps>

### Portal App Detay Sayfası

<Frame caption="Portal App Detay Sayfası">
  <img src="https://mintcdn.com/apinizer/PzXsU74TU9HyZpo3/images/portal/uygulama_yonetimi_detay.png?fit=max&auto=format&n=PzXsU74TU9HyZpo3&q=85&s=1c4c134b7f199f8e24b0fe55b7a18184" alt="Portal App Detay Sayfası" width="1100" data-path="images/portal/uygulama_yonetimi_detay.png" />
</Frame>

| Bölüm                                  | Bilgi                                                           | Açıklama/ İşlev                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| -------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Üst Bilgi Bölümü**                   | Sayfanın üst kısmında kart şeklinde bilgiler görüntülenir       | \* **Account:** Hesap adı (tıklanabilir link, hesap detayına gider)<br />\* **Name:** Uygulama adı<br />\* **Reference ID:** Benzersiz uygulama ID'si<br />\* **Description:** Uygulama açıklaması<br />\* **Created Date:** Oluşturulma tarihi (dd/MM/yyyy HH:mm:ss formatında)<br />\* **Edit Butonu:** Uygulama bilgilerini düzenlemek için                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| **API Keys (API Anahtarları) Bölümü**  | Bu bölümde uygulamaya ait tüm API Key'ler listelenir.           | \* **API Key:** Credential'ın username'i (API çağrılarında kullanılır)<br />\* **Enabled:** Aktif/Pasif durumu (yeşil/kırmızı nokta ile)<br />\* **Created Date:** Key'in oluşturulma tarihi<br />\* **Expire Date:** Key'in geçerlilik süresi (yoksa "Never Expire")<br />\* **Actions:** Revoke (İptal) butonu<br /><br />**API Key Oluşturma:**<br />1. Tablo başlığındaki **"Generate Key"** butonuna tıklayın<br />2. Sistem otomatik olarak:<br />   \* Benzersiz bir username (UUID) üretir<br />   \* Benzersiz bir password (UUID) üretir<br />   \* Credential'ı aktif durumda oluşturur<br />   \* Uygulamanın account ve organization bilgilerini atar<br />3. Yeni key tabloya eklenir<br /><br />**API Key İptal Etme (Revoke):**<br />1. İptal etmek istediğiniz key'in satırındaki **"Revoke"** butonuna tıklayın<br />2. Key'in durumu pasif olur (enabled = false)<br />3. Bu key artık API çağrılarında kullanılamaz |
| **API Products (API Ürünleri) Bölümü** | Bu bölümde uygulamanın kayıt olduğu API Product'lar listelenir. | **API Product:** Ürün adı<br />**Description:** Ürün başlığı/açıklaması<br />**Plan:** Seçilen plan detayları (Free, Subscription, Metered, Tiered)<br />**Status:** Kayıt durumu (APPROVED, WAITING, REJECTED, UNSUBSCRIBED)<br />**Actions:** Unregister (Kaydı İptal) butonu                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

<Info>
  API Product'a eklenene API Product'ın durumları için:

  🟢 **APPROVED:** Onaylanmış, aktif kullanımda
  🟡 **WAITING:** Onay bekliyor
  🔴 **REJECTED:** Reddedilmiş
  ⚫ **UNSUBSCRIBED:** Kaydı iptal edilmiş

  durumları [Onay İstekleri](/tr/api-portal/onay-istekleri) sayfasında anlatılmıştır.
</Info>

**API Product Kaydını İptal Etme:**

* İptal etmek istediğiniz ürünün satırındaki "Unregister" butonuna tıklayın
* Kayıt durumu UNSUBSCRIBED olarak güncellenir
* Uygulama artık bu API Product'a erişemez

<Note>
  Bu işlem API Manager'dan yapılır. Portal kullanıcıları detay sayfasında kayıtlarını iptal edemez.
</Note>

## API Portal'da Arayüzünde Uygulamalarım

API Portal'da kullanıcılar sadece kendi uygulamalarını görebilir ve yönetebilir.

## Portal'den Uygulama Oluşturma

<Frame caption="Portal'den Uygulama Oluşturma">
  <img src="https://mintcdn.com/apinizer/PzXsU74TU9HyZpo3/images/portal/uygulama_yonetimi_portal_olusturma.png?fit=max&auto=format&n=PzXsU74TU9HyZpo3&q=85&s=d6ede97ddfe9011d02956e24c1f8954b" alt="Portal'den Uygulama Oluşturma" width="1100" data-path="images/portal/uygulama_yonetimi_portal_olusturma.png" />
</Frame>

<Frame caption="Portal Uygulama Listesi">
  <img src="https://mintcdn.com/apinizer/PzXsU74TU9HyZpo3/images/portal/uygulama_yonetimi_portal_liste.png?fit=max&auto=format&n=PzXsU74TU9HyZpo3&q=85&s=5ef9fbf465d0b5103d93a6ebdd103e03" alt="Portal Uygulama Listesi" width="1100" data-path="images/portal/uygulama_yonetimi_portal_liste.png" />
</Frame>

<Tabs>
  <Tab title="Senaryo A: Hiç Uygulaması Olmayan Kullanıcı">
    **Adım 1:** Uygulamalarım sayfası açıldığında boş liste kartı ve "Henüz uygulamanız bulunmuyor" mesajı görünmesi durumunda:

    * **"+ Create"** butonuna tıklayın
    * Açılan dialog'da bilgileri doldurun

    **Adım 2:**

    * **"Save"** butonuna tıklayın
    * Kayıt tamamlandığında otomatik olarak oluşturulan ilk uygulamanız listeye eklenir ve ilk API Key'iniz hazırlanır
  </Tab>

  <Tab title="Senaryo B: Mevcut Uygulamaları Olan Kullanıcı">
    **Adım 1:** Liste sayfasında mevcut uygulamalar kart/tabloda listelenmesi durumunda:

    * Sağ üst köşedeki **"+ Create"** butonu her zaman görünür
    * Bu butona tıklayarak yeni uygulama eklenebilir

    **Adım 2:**

    * App ve plan seçilip register olunur
  </Tab>
</Tabs>

<Info>
  Kayıt işlemi tamamlandıktan sonra API Product'ın durumuna göre yapılacak adımlar için [Onay İstekleri sayfasındaki API Ürünü Erişim Ayarları](/tr/api-portal/onay-istekleri#api-urunu-erisim-ayarlari) bölümünde detaylı olarak anlatılmıştır.
</Info>

API Portal arayüzünde uygulama oluşturmanın bir diğer yöntemi de **"Uygulamalarım"** sayfası üzerinden işlem yapmaktır. Bu sayfa; yeni uygulama oluşturma, mevcut uygulamaları düzenleme veya silme gibi tüm yönetim adımlarının yapıldığı merkezi alandır.

API Product detay ekranında ise yalnızca **mevcut bir uygulamanın ilgili API Product'a eklenmesi** mümkündür; uygulama düzenleme veya silme işlemleri burada gerçekleştirilmez.

Ek olarak; API Manager tarafında uygulama oluşturulurken **Account / Developer** bölümü girilmesi gerekir. Ancak Portal tarafında kullanıcı zaten kimliği doğrulanmış şekilde giriş yaptığı için, Portal üzerinden oluşturulan uygulamalar **otomatik olarak ilgili kullanıcıya ait** olacak şekilde kaydedilir.

Aşağıda, Portal Uygulamalarım sayfasının arayüzü örnek olarak gösterilmektedir.

<Frame caption="Portal Uygulamalarım Sayfası">
  <img src="https://mintcdn.com/apinizer/PzXsU74TU9HyZpo3/images/portal/uygulama_yonetimi_portal_uygulamalarim.png?fit=max&auto=format&n=PzXsU74TU9HyZpo3&q=85&s=ba279d5babc2646e499bd2a26d798949" alt="Portal Uygulamalarım Sayfası" width="1100" data-path="images/portal/uygulama_yonetimi_portal_uygulamalarim.png" />
</Frame>

## API Portal Arayüzünde API Key (Credential) Yönetimi

**API Key Yapısı**

Her API Key aşağıdaki özelliklere sahiptir:

| Özellik            | Açıklama                                               |
| ------------------ | ------------------------------------------------------ |
| Username           | API çağırılarında kullanılan anahtar (UUID formatında) |
| Password           | Secret key (UUID formatında)                           |
| App Id             | Ait olduğu uygulama ID'si                              |
| Account Id         | Ait olduğu hesap ID'si                                 |
| Organization Id    | Ait olduğu organizasyon ID'si                          |
| Enabled            | Aktif/Pasif durumu (true/false)                        |
| Created            | Oluşturulma tarihi                                     |
| Expire Date        | Geçerlilik süresi (opsiyonel)                          |
| Account Credential | Hesap bazlı credential olup olmadığı (true/false)      |

## API Key Oluşturma ve İptal Etme Akışı

<Frame caption="API Key Oluşturma ve İptal Etme Akışı">
  <img src="https://mintcdn.com/apinizer/PzXsU74TU9HyZpo3/images/portal/uygulama_yonetimi_api_key_akis.png?fit=max&auto=format&n=PzXsU74TU9HyZpo3&q=85&s=b12c4767a9b802b61bbd00154505b87b" alt="API Key Oluşturma ve İptal Etme Akışı" width="1100" data-path="images/portal/uygulama_yonetimi_api_key_akis.png" />
</Frame>

<Tabs>
  <Tab title="API Key Oluşturma Akışı">
    1. Kullanıcı "Generate Key" butonuna tıklar
    2. Sisteme UUID formatında username üretilir
    3. Sisteme UUID formatında password üretilir
    4. Credential nesnesi oluşturulur:
       * username: UUID
       * password: UUID
       * appId: \[Uygulama ID]
       * accountId: \[Hesap ID]
       * organizationId: \[Organizasyon ID]
       * enabled: true
    5. CredentialUpdateDTO oluşturulur:
       * credential: \[Credential nesnesi]
       * accessControlList: \[]
       * accountCredential: true
    6. Backend'e POST isteği gönderilir
    7. Başarılı yanıt alınır
    8. Credential listesi yenilenir
    9. Kullanıcıya başarı mesajı gösterilir
  </Tab>

  <Tab title="API Key İptal Etme Akışı">
    1. Kullanıcı "Revoke" butonuna tıklar
    2. Credential nesnesi güncellenir:
       * enabled: false (pasif)
       * Diğer bilgiler aynı kalır
    3. CredentialUpdateDTO oluşturulur
    4. Backend'e PUT isteği gönderilir
    5. Başarılı yanıt alınır
    6. Credential listesi yenilenir
    7. Key pasif durumda görünür (kırmızı nokta)
  </Tab>
</Tabs>

## API Product Kaydı Durumları

**Status Açıklamaları:**

| Status           | Açıklama           | Badge Rengi | Kullanım                                  |
| ---------------- | ------------------ | ----------- | ----------------------------------------- |
| **WAITING**      | Onay bekliyor      | Sarı        | Kayıt oluşturuldu, admin onayı bekleniyor |
| **APPROVED**     | Onaylandı          | Yeşil       | Uygulama API'leri kullanabilir            |
| **REJECTED**     | Reddedildi         | Kırmızı     | Kayıt reddedildi, uygulama kullanamaz     |
| **UNSUBSCRIBED** | Kaydı iptal edildi | Gri         | Kullanıcı veya admin kaydı iptal etti     |

## Kullanım Senaryoları

<Accordion title="Senaryo 1: Yeni Bir Uygulama Oluşturma (Portal Kullanıcısı)">
  1. Kullanıcı Portal'a giriş yapar
  2. Menüden **"Uygulamalarım"** sayfasına gider
  3. **"+ Create"** butonuna tıklar
  4. Formu doldurur:
     * App Name: "Mobile iOS App"
     * App Id: Otomatik UUID
     * Description: "iOS uygulaması için API erişimi"
  5. **"Save"** butonuna tıklar
  6. Sistem otomatik olarak:
     * Uygulamayı oluşturur
     * İlk API Key'i üretir
     * Kullanıcıya başarı mesajı gösterir
  7. Kullanıcı yeni uygulamayı listede görür

  **Sonuç:**

  * Uygulama hazır
  * İlk API Key kullanıma hazır
  * API Product'lara kayıt olunabilir
</Accordion>

<Accordion title="Senaryo 2: API Product'a Kayıt ve Kullanım">
  1. Kullanıcı **"API Products"** sayfasına gider
  2. İstediği API Product'ı seçer
  3. Bir plan seçer (Free, Subscription, vb.)
  4. Uygulamasını seçer
  5. **"Subscribe"** butonuna tıklar
  6. Kayıt oluşturulur (Status: WAITING)
  7. Admin kaydı onaylar (Status: APPROVED)
  8. Kullanıcı uygulama detay sayfasında kaydı görür
  9. API Key'ini kullanarak API çağrıları yapar

  **Sonuç:**

  * Uygulama API'ye erişebilir
  * Throttling/Quota limitleri uygulanır
  * Kullanım izlenir ve raporlanır
</Accordion>

<Accordion title="Senaryo 3: API Key Yönetimi ve Rotasyon">
  1. Kullanıcı uygulama detay sayfasına gider
  2. Mevcut API Key'leri görür
  3. Güvenlik nedeniyle key değiştirmeye karar verir
  4. **"Generate Key"** ile yeni key oluşturur
  5. Yeni key'i kodunda günceller
  6. Test eder ve çalıştığını doğrular
  7. Eski key'i **"Revoke"** ile iptal eder

  **Sonuç:**

  * Güvenlik artırıldı
  * Eski key geçersiz kılındı
  * Yeni key aktif olarak kullanılıyor
</Accordion>

<Accordion title="Senaryo 4: Uygulama Silme ve Temizlik">
  1. Kullanıcı artık kullanmadığı bir uygulamayı silmeye karar verir
  2. **"Uygulamalarım"** sayfasına gider
  3. Silinecek uygulamanın menü butonuna (⋮) tıklar
  4. **"Remove"** seçeneğine tıklar
  5. Onay dialog'unda uygulamayı kontrol eder
  6. **"Delete"** butonuna tıklar
  7. Sistem:
     * Uygulamayı siler
     * Tüm API Key'leri iptal eder
     * API Product kayıtlarını kaldırır
  8. Başarı mesajı gösterilir

  **Sonuç:**

  * Uygulama tamamen silinir
  * İlgili tüm kaynaklar temizlenir
  * API çağrıları başarısız olur
</Accordion>

<Accordion title="Senaryo 5: Admin Tarafından Uygulama Yönetimi">
  1. Admin API Manager'a giriş yapar
  2. **Portal Management > Portal Apps** sayfasına gider
  3. Tüm kullanıcıların uygulamalarını görür
  4. Bir uygulamayı seçerek detay sayfasına gider
  5. API Product kayıtlarını kontrol eder
  6. Gerekirse:
     * Yeni API Key oluşturur
     * Mevcut key'leri iptal eder
     * API Product kaydını onaylar/reddeder
     * Kaydı iptal eder (unregister)
  7. Uygulama bilgilerini düzenler
  8. Değişiklikler kaydedilir

  **Sonuç:**

  * Admin merkezi yönetim yapabilir
  * Kullanıcı uygulamaları izlenir
  * Gerekli müdahaleler yapılır
</Accordion>

## Sık Sorulan Sorular

<Accordion title="Portal App nedir ve neden gereklidir?">
  Portal App, API'lere erişmek için oluşturulan bir uygulamadır. Her API çağrısı bir uygulamaya ait API Key ile yapılır, bu sayede kullanım izlenebilir ve kontrol edilebilir.
</Accordion>

<Accordion title="Bir kullanıcı kaç uygulama oluşturabilir?">
  Bir kullanıcı istediği kadar uygulama oluşturabilir. Limit yoktur.
</Accordion>

<Accordion title="Aynı isimde iki uygulama oluşturabilir miyim?">
  Evet, aynı hesap altında aynı isimde birden fazla uygulama olabilir. Reference ID her durumda benzersizdir.
</Accordion>

<Accordion title="API Key password'unu unutursam ne olur?">
  Password bir kez gösterilir ve sistemde saklanmaz. Unutulursa key iptal edilip yeni bir key oluşturulmalıdır.
</Accordion>

<Accordion title="Bir uygulamada kaç API Key olabilir?">
  Bir uygulamada istediğiniz kadar API Key oluşturabilirsiniz. Limit yoktur.
</Accordion>

<Accordion title="İptal edilen bir key'i tekrar aktif yapabilir miyim?">
  Hayır, iptal edilen bir key tekrar aktif edilemez. Yeni bir key oluşturulmalıdır.
</Accordion>

<Accordion title="Bir uygulama birden fazla API Product'a kayıt olabilir mi?">
  Evet, bir uygulama istediği kadar API Product'a kayıt olabilir.
</Accordion>

<Accordion title="WAITING durumundaki kaydım ne zaman onaylanır?">
  Kayıtlar genellikle admin tarafından manuel onaylanır. Onay süresi sistem politikalarına göre değişir.
</Accordion>

<Accordion title="Reddedilen (REJECTED) bir kaydı tekrar başvurabilir miyim?">
  Evet, kaydı silebilir ve tekrar oluşturabilirsiniz. Ancak ret nedenini öğrenmek için admin ile iletişime geçmeniz önerilir.
</Accordion>

<Accordion title="API Manager ve API Portal arasındaki fark nedir?">
  API Manager yöneticilerin tüm uygulamaları yönettiği yerdir. API Portal kullanıcıların sadece kendi uygulamalarını yönettiği yerdir.
</Accordion>

<Accordion title="Admin benim uygulamama müdahale edebilir mi?">
  Evet, admin tüm uygulamaları görüntüleyebilir, düzenleyebilir ve silebilir.
</Accordion>
