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

# Ortak Veri Modeli

> Mesaj içeriğindeki veri tiplerini tanımlayan ortak şema modelleri oluşturabilirsiniz. Yeniden kullanılabilir şema tanımları, model kalıtımı ve paylaşılan bileşenler ile JSON Schema referansları kullanabilirsiniz. Oluşturduğunuz modelleri Spec Tasarım Editörü içerisinde içe aktararak kullanabilirsiniz.

## Ortak Veri Modeli Kavramı

Ortak Veri Modeli, API Designer'ın spec first yaklaşımında yeniden kullanılabilir şema tanımları oluşturmanıza olanak sağlar. Mesaj içeriğindeki veri tiplerini tanımlayan ortak şema modelleri oluşturarak, model kalıtımı ve paylaşılan bileşenler ile JSON Schema referansları kullanabilirsiniz. Oluşturulan modeller Spec Tasarım Editörü içerisinde içe aktarılarak kullanılabilir.

<CardGroup cols={2}>
  <Card title="Yeniden Kullanılabilir Şemalar" icon="repeat">
    Ortak şema modelleri oluşturulur

    Aynı veri yapısı birden çok API'de kullanılabilir.
  </Card>

  <Card title="Model Kalıtımı" icon="sitemap">
    Model kalıtımı ve referanslar

    JSON Schema referansları ile model ilişkileri.
  </Card>

  <Card title="Paylaşılan Bileşenler" icon="share-nodes">
    Paylaşılan bileşenler kullanılır

    Ortak veri tipleri merkezi olarak yönetilir.
  </Card>

  <Card title="Spec Tasarım Editörü Entegrasyonu" icon="pencil">
    Spec Tasarım Editörü'nde kullanım

    Oluşturulan modeller API Spec'lerde içe aktarılabilir.
  </Card>
</CardGroup>

## Ortak Veri Modeli Özellikleri

### Şema Tasarımı

Ortak veri modellerinde şema tasarımı ve özellik yönetimi:

<AccordionGroup>
  <Accordion title="Veri Tipi Tanımları">
    * Temel veri tipleri (string, integer, number, boolean)
    * Karmaşık veri tipleri (object, array)
    * Enum değerleri
    * Format tanımlamaları
  </Accordion>

  <Accordion title="Şema Özellikleri">
    * Property tanımları
    * Zorunlu alanlar
    * Read-only ve write-only davranışları
    * Validation kuralları
  </Accordion>

  <Accordion title="Model Referansları">
    * \$ref ile model referansları
    * Model kalıtımı
    * Paylaşılan bileşenler
    * JSON Schema referansları
  </Accordion>
</AccordionGroup>

### Veri Modeli Yönetimi

Ortak veri modellerinin oluşturulması ve yönetimi:

<CardGroup cols={2}>
  <Card title="Model Oluşturma" icon="plus-circle">
    Yeni ortak veri modelleri oluşturulur

    * Ad ve açıklama tanımlama
    * Şema yapısı oluşturma
    * Örnek değerler ekleme
  </Card>

  <Card title="Şema Özellikleri" icon="list">
    Şema içerisinde özellikler tanımlanır

    * Property ekleme ve düzenleme
    * Tip ve format belirleme
    * Validation kuralları
  </Card>

  <Card title="Model İçe Aktarma" icon="download">
    Modeller Spec Tasarım Editörü'nde kullanılır

    * Spec içerisinde model referansı
    * Paylaşılan bileşen kullanımı
    * Yeniden kullanılabilirlik
  </Card>
</CardGroup>

## Ortak Veri Modeli Oluşturma

Liste arayüzünün sağ üst kısmındaki **Yeni (Create)** butonuna tıklanarak yeni bir Veri Modeli oluşturulabilir.

<img src="https://mintcdn.com/apinizer/Ku5drz7BLIhaC8K7/images/develop/data-models/data-model-1.png?fit=max&auto=format&n=Ku5drz7BLIhaC8K7&q=85&s=fe439408f0aedfdb371dd9bff2b4866b" alt="Liste arayüzü" style={{maxWidth: '1000px', width: '100%', height: 'auto'}} width="1335" height="241" data-path="images/develop/data-models/data-model-1.png" />

Ortak Veri Modeli oluşturma ayarları aşağıdaki görselde gösterilmektedir:

<img src="https://mintcdn.com/apinizer/Ku5drz7BLIhaC8K7/images/develop/data-models/data-model-2.png?fit=max&auto=format&n=Ku5drz7BLIhaC8K7&q=85&s=30e6b824790796ff6de32dc36ba8a74a" alt="Ortak Veri Modeli oluşturma ayarları" style={{maxWidth: '1000px', width: '100%', height: 'auto'}} width="1332" height="882" data-path="images/develop/data-models/data-model-2.png" />

Ortak veri modeli oluşturma konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.

| Alan                         | Açıklama                                                                                        |
| ---------------------------- | ----------------------------------------------------------------------------------------------- |
| **Ad**                       | Veri modelinin ad bilgisidir.                                                                   |
| **Açıklama**                 | Veri modeline ilişkin açıklamadır.                                                              |
| **Şema** <em>(Schema)</em>   | Veride yer bulunacak özellikler ve alanların tipi, pattern, min-max gibi özellikleri yönetilir. |
| **Örnek** <em>(Example)</em> | Veri tipinin bir örneği oluşturabilir.                                                          |

## Şema Özelliği Ekleme

Şema içerisinde özellikler (properties) ekleyerek veri modelinizin yapısını tanımlayabilirsiniz.

Şema Özelliği ekleme ayarları aşağıdaki görselde gösterilmektedir:

<img src="https://mintcdn.com/apinizer/Ku5drz7BLIhaC8K7/images/develop/data-models/data-model-3.png?fit=max&auto=format&n=Ku5drz7BLIhaC8K7&q=85&s=e0d5d91cc06aa902995bceb58afd3023" alt="Şema Özelliği ekleme ayarları" style={{maxWidth: '755px', width: '100%', height: 'auto'}} width="755" height="522" data-path="images/develop/data-models/data-model-3.png" />

Şema Özelliği oluşturma konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.

| Alan                                                  | Açıklama                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Ad**                                                | Şemanın ad bilgisidir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| **Açıklama**                                          | Şema hakkında açıklama yapılabilir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| **Tip**                                               | Şemanın tipinin belirtildiği alandır.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **Format** <em>(Format)</em>                          | Seçilen tipe göre aktif olan bir alandır. Bazı tipler için seçilebilecek formatlar bulunur:<br /><br />**integer**<br />- int32: İşaretli 32 bit tam sayılar (yaygın olarak kullanılan tam sayı türü).<br />- int64: İşaretli 64 bit tam sayılar (uzun tip).<br /><br />**number**<br />- float: Ondalıklı sayılar (6 basamak).<br />- double: Ondalıklı sayılar (14 basamak).<br /><br />**string**<br />- byte: Base64 ile kodlanmış karakterler. Örneğin, **U3dhZ2dlciByb2Nrcw==**<br />- binary: Dosyaları tanımlamak için kullanılan ikili veri<br />- date: Tam tarih gösterimi. Örneğin, **2017-07-21**<br />- date-time: Tarih-saat gösterimi. Örneğin, **2017-07-21T17:32:28Z**<br />- password: Girişi maskelemek için kullanılır. |
| **\$Ref Target**                                      | Eğer tip alanından \$ref seçilirse bu alan aktifleşir.<br /><br />Başka bir veri modelinin referansı verilebilir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| **Özellik** <em>(Property is)</em>                    | Modelin kullanımının zorunlu olup olmadığı belirtilir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| **Davranım** <em>(Behaviour)</em>                     | Şemanın yalnızca okunur/yazılır (Read Only, Write Only) bilgisi belirlenir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| **Integer Özellikleri** <em>(Integer Properties)</em> | Tip olarak Integer seçilmiş ise bu alanlar aktif olur:<br />- Minimum: Girilebilecek değerlerin en küçüğünü belirlemek içindir.<br />- Maximum: Girilebilecek değerlerin en büyüğünü belirlemek içindir.<br />- MultipleOf: Girilecek değerlerin bir sayının katı olması isteniyorsa bunu belirlemek içindir.                                                                                                                                                                                                                                                                                                                                                                                                                                |
| **String Özellikleri** <em>(String Properties)</em>   | Tip olarak String seçilmiş ise bu alanlar aktif olur:<br />- Desen <em>(Pattern)</em>: String değeri için bir normal ifade şablonu tanımlamanıza olanak tanır. Yalnızca bu şablonla eşleşen değerler kabul edilecektir.<br />- Minimum Uzunluğu <em>(Min Length)</em>: Girilebilecek değerlerin minimum uzunluğunu belirlemek içindir.<br />- Maksimum Uzunluğu <em>(Max Length)</em>: Girilebilecek değerlerin maksimum uzunluğunu belirlemek içindir.                                                                                                                                                                                                                                                                                      |
| **Enum Değerleri** <em>(Enum Values)</em>             | Tip olarak Enum seçilmiş ise bu alan aktif olur.<br /><br />Modelin olası değerlerininin girildiği alandır.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| **Örnek** <em>(Example)</em>                          | Şemayı tarif eden bir örnek verilebilir.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |

## Ortak Veri Modeli Kullanım Senaryoları

Spec first yaklaşımında ortak veri modellerinin kullanım senaryoları:

<CardGroup cols={2}>
  <Card title="Yeniden Kullanılabilir Şema Oluşturma" icon="repeat">
    1. Ortak veri modeli oluşturma
    2. Şema özelliklerini tanımlama
    3. Modeli Spec Tasarım Editörü'nde içe aktarma
    4. Birden çok API Spec'te kullanma
    5. Merkezi güncelleme ve yönetim
  </Card>

  <Card title="Model Kalıtımı ve Referanslar" icon="sitemap">
    1. Temel veri modelleri oluşturma
    2. Model referansları ile ilişkiler kurma
    3. \$ref ile model kalıtımı
    4. Paylaşılan bileşenler kullanma
    5. Tutarlı veri yapıları
  </Card>
</CardGroup>

## Ortak Veri Modeli ve Spec Tasarım Editörü İlişkisi

Ortak Veri Modelleri, Spec Tasarım Editörü ile entegre çalışır. İşleyiş akışı:

```
Ortak Veri Modelleri
   │
   │ Şema Tanımları
   │ Model Referansları
   │
   ▼
Spec Tasarım Editörü
   │
   │ Model İçe Aktarma
   │ $ref Referansları
   │
   ▼
API Spec
   │
   │ Paylaşılan Bileşenler
   │
   ▼
API Proxy
```

<CardGroup cols={4}>
  <Card title="1. Model Oluşturma" icon="plus-circle">
    Ortak Veri Modelleri sayfasında model oluşturulur

    Şema özellikleri ve yapısı tanımlanır.
  </Card>

  <Card title="2. Model Tanımlama" icon="pencil">
    Şema özellikleri ve validation kuralları belirlenir

    Property'ler, tipler ve formatlar tanımlanır.
  </Card>

  <Card title="3. Spec'te Kullanım" icon="file-code">
    Spec Tasarım Editörü'nde model içe aktarılır

    \$ref referansları ile model kullanılır.
  </Card>

  <Card title="4. Yeniden Kullanım" icon="repeat">
    Model birden çok API Spec'te kullanılabilir

    Merkezi yönetim ve tutarlılık sağlanır.
  </Card>
</CardGroup>

<Info>
  Ortak Veri Modelleri ve Spec Tasarım Editörü arasındaki bu entegrasyon, spec first yaklaşımında yeniden kullanılabilir şema tanımları ile tutarlı ve merkezi yönetilen veri yapıları oluşturmanıza olanak sağlar. Modeller bir kez oluşturulur ve birden çok API Spec'te kullanılabilir.
</Info>

## Ortak Veri Modeli Avantajları

Yeniden kullanılabilir şema tanımlarının sağladığı avantajlar:

<CardGroup cols={2}>
  <Card title="Yeniden Kullanılabilirlik" icon="repeat">
    * Aynı şema birden çok API'de kullanılır
    * Merkezi şema yönetimi
    * Tutarlı veri yapıları
  </Card>

  <Card title="Model Kalıtımı" icon="sitemap">
    * \$ref ile model referansları
    * Model ilişkileri ve kalıtım
    * Paylaşılan bileşenler
  </Card>

  <Card title="Merkezi Yönetim" icon="database">
    * Tek yerden şema güncelleme
    * Değişikliklerin tüm API'lere yansıması
    * Versiyon kontrolü
  </Card>

  <Card title="Standart Uyumluluk" icon="check-circle">
    * JSON Schema standartlarına uyum
    * OpenAPI/Swagger uyumluluğu
    * Tool desteği
  </Card>
</CardGroup>

## Sonraki Adımlar

<CardGroup cols={2}>
  <Card title="Spec Tasarım Editörü" icon="pencil" href="/tr/develop/api-tasarimi/spec-designer">
    Spec Tasarım Editörü detayları
  </Card>

  <Card title="API Proxy Oluşturma" icon="network-wired" href="/tr/develop/api-proxy-olusturma/api-proxy-olusturma">
    API Proxy oluşturma
  </Card>

  <Card title="JSON Schema Validation" icon="shield-check" href="/tr/develop/politikalar/json-sema-dogrulama">
    JSON şema doğrulama politikası
  </Card>

  <Card title="API Designer" icon="wand-magic-sparkles" href="/tr/concepts/temel-bilesenler/api-designer">
    API Designer bileşenini öğrenin
  </Card>
</CardGroup>
