> ## 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 Creator ile Veri Tabanından API oluşturma

> DB-2-API ile teknik bilgi gerektirmeden dakikalar içinde veri tabanı işlemi yapan REST API oluşturabilirsiniz. SQL ve NoSQL sorguları çalıştırabilir, Stored Procedure çağırabilir, Batch işlemler yapabilir ve CRUD operasyonları gerçekleştirebilirsiniz

Aşağıdaki işlemleri destekler:

<CardGroup cols={3}>
  <Card title="Native SQL Deyimleri" icon="database">
    SELECT, INSERT, UPDATE, DELETE, PROCEDURE, BATCH INSERT, TRUNCATE işlemlerini destekler.
  </Card>

  <Card title="NoSQL İşlemleri" icon="database">
    FIND işlem tipi desteği sağlar.
  </Card>

  <Card title="Stored Procedure" icon="code">
    Stored Procedure çağırma desteği sunar.
  </Card>

  <Card title="Cursor Desteği" icon="arrows-rotate">
    Cursor sonucunu dönebilir.
  </Card>

  <Card title="Batch İşlemler" icon="list">
    Batch işlem yapma desteği sağlar.
  </Card>

  <Card title="CRUD İşlemleri" icon="gear">
    Tüm CRUD operasyonlarını destekler.
  </Card>
</CardGroup>

## Yeni DB-2-API Oluşturma

<Steps>
  <Step title="Menüden DB-2-API Sayfasına Gidin">
    Ana menüde **Geliştirme → API Oluşturucu → DB-2-API** (*Development → API Creator → DB-2-API*) ögesi seçilir.
  </Step>

  <Step title="Yeni API Oluşturun">
    Açılan arayüzde sağ üstteki **+Oluştur (Create)** tuşuna tıklanır.

    <img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-olustur-butonu.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=8682d79b5ba160c5ef3dceb6d68a34d9" alt="DB-2-API Oluştur butonu" width="800" data-path="images/develop/api-proxy-olusturma/db-api-olustur-butonu.png" />
  </Step>

  <Step title="API Bilgilerini Doldurun">
    Yeni oluşturulacak *API* için gerekli alanlar doldurularak sağ üstteki **→Kaydet ve Devam (Save and Next)** tuşuna tıklanmasıyla *API* oluşturma işi başlamış olur.

    <img src="https://mintcdn.com/apinizer/xcpaeYP822whFSPn/images/develop/api-proxy-olusturma/db2api-new.png?fit=max&auto=format&n=xcpaeYP822whFSPn&q=85&s=67e0b3d1d6a1ac1056279b62ed73c1cc" alt="DB-2-API bilgilerini doldurma" width="800" data-path="images/develop/api-proxy-olusturma/db2api-new.png" />
  </Step>
</Steps>

## Endpoint Oluşturma

<Steps>
  <Step title="Endpoint Ekle">
    Gelen ekranda **Ekle (Add)** tuşuna tıklayarak API'ye *Method/Endpoint* eklenir.

    <img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-endpoint-ekle.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=58ba722c65a226a6333488b2f5037e19" alt="Endpoint ekle" width="800" data-path="images/develop/api-proxy-olusturma/db-api-endpoint-ekle.png" />
  </Step>

  <Step title="Endpoint Bilgilerini Doldurun">
    *Method/Endpoint* tanımlama ekranındaki alanlar doldurularak **Kaydet** tuşuna tıklanır.

    <img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-endpoint-tanimlama.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=eb7b17dc3fa177fb2dd0bfb550f8eb5e" alt="Endpoint tanımlama" width="800" data-path="images/develop/api-proxy-olusturma/db-api-endpoint-tanimlama.png" />
  </Step>
</Steps>

Endpoint oluşturmak için kullanılan alanlar aşağıda kategorilere ayrılarak açıklanmıştır:

<AccordionGroup>
  <Accordion title="Temel Bilgiler">
    <CardGroup cols={2}>
      <Card title="HTTP Metot" icon="list">
        **Alan:** HTTP Metot (HTTP Method)

        REST API'ler için HTTP Metodu seçilir: GET, POST, PUT, HEAD, OPTIONS, DELETE, PATCH, TRACE, ALL
      </Card>

      <Card title="Ad/URL" icon="tag">
        **Alan:** Ad/URL (Name/URL)

        Method/Endpoint'ye kullanıcı tarafından verilen addır. Arayüzlerde bu ad görünür.
      </Card>

      <Card title="Açıklama" icon="file-lines">
        **Alan:** Açıklama

        Method/Endpoint'nin tanım bilgisidir.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Veritabanı Bağlantısı">
    <CardGroup cols={2}>
      <Card title="Bağlantı Havuzu" icon="database">
        **Alan:** Bağlantı Havuzu Tanımı (Connection Pool Description)

        Sorguların işletileceği Veritabanı bağlantısının bilgisidir.
      </Card>

      <Card title="Sorgu Zaman Aşımı" icon="clock">
        **Alan:** Sorgu Zaman Aşımı (Timeout)

        Sorgu yürütmesinin saniye cinsinden zaman aşımı değeridir.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="SQL İşlemleri">
    <CardGroup cols={2}>
      <Card title="SQL Deyimi Türü" icon="code">
        **Alan:** SQL Deyimi Türü (Type of SQL Statement)

        SQL Deyimi türü bilgisidir: SELECT, UPDATE, INSERT, DELETE, PROCEDURE, TRUNCATE, BATCH INSERT
      </Card>

      <Card title="SQL Deyimi" icon="code">
        **Alan:** SQL Deyimi (SQL)

        Çalıştırılacak olacak SQL deyimidir. Parametreler, tanımlanabilmeleri için iki nokta üst üste (`:`) önekiyle boşluk bırakılmadan yazılmalıdır.

        **Örnek sorgu:**

        ```sql theme={null}
        select * from employees where first_name = :fName
        ```

        Burada `:fName` parametre'dir ve API'ya istek yapacak kullanıcı tarafından gönderilir.

        <Tip>
          Ardından parametre için örnek değerleri girerek **Dene (Try It)** butonuna tıklayarak sorgunuzun doğrulunu kontrol edebilirsiniz.
        </Tip>
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="NoSQL İşlemleri">
    <CardGroup cols={2}>
      <Card title="İşlem Tipi" icon="database">
        **Alan:** İşlem Tipi (Operation Type)

        NoSQL işlem tipi bilgisidir: FIND
      </Card>

      <Card title="Sorgu" icon="code">
        **Alan:** Sorgu (Query)

        Çalıştırılacak olacak sorgudur. Parametreler, tanımlanabilmeleri için iki süslü parantez içine alınır.

        **Örnek sorgu:**

        ```javascript theme={null}
        { username: {{username}} }
        ```

        Burada `{{username}}` parametre'dir ve API'ya istek yapacak kullanıcı tarafından gönderilir.

        <Tip>
          Ardından parametre için örnek değerleri girerek **Dene (Try It)** butonuna tıklayarak sorgunuzun doğrulunu kontrol edebilirsiniz.
        </Tip>
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Parametreler">
    <Card title="Parametreler" icon="slider">
      **Alan:** Parametreler (Parameters)

      SQL Sorgunuzda `:fName` gibi bir parametre mevcutsa Parametreler (Parameters) tablosu açılır. Burada parametrenin:

      * Veri Tipi
      * Formatı
      * Yineleme Tipi
      * Parametre Tipi
      * Örnek Değer'ler

      girilir.

      <Info>
        Daha sonra **Dene** butonuna tıklanarak "Yanıt Mesaj Örneği" bu verilere göre gelir.
      </Info>
    </Card>
  </Accordion>
</AccordionGroup>

## SQL'i Test Etme

Endpoint'e istek gönderildiğinde nasıl bir sonucun alınacağı görülmek istenebilir. Eğer endpoint için çalıştırılacak sorgunun parametreleri varsa test verileri (Test Value) girilerek **Dene (Try It)** butonuna basılır.

Test sonucu dönen şablon, Apinizer'da stabil olan Response nesnesidir. Eğer sorguyla eşleşen birden fazla kayıt varsa sadece ilk kayıt örnek yanıt içinde verilmektedir.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-sql-test.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=8ca1e3b3af7685ecfda5e41784287ae2" alt="SQL test etme" width="800" data-path="images/develop/api-proxy-olusturma/db-api-sql-test.png" />

<Info>
  Test için **null** değer gönderilmek istenirse, parametre olarak **null** yazılması yeterlidir.
</Info>

## DB-2-API'den API Proxy Oluşturma

En az bir tane *Method/Endpoint* olduğunda **API Proxy Oluştur (Create API Proxy)** tuşuna tıklayarak DB-2-API için bir API Proxy oluşturulur.

<Warning>
  DB-2-API'den API Proxy oluşturmak için en az bir *Method/Endpoint* olmalıdır.
</Warning>

Gelen ekranda API Proxy için gerekli alanları girerek **Kaydet (Save)** butonuna tıklayarak API Proxy oluşturulur.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-proxy-olusturma.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=b946a7939030247ae4263b9a7cd1b1b9" alt="API Proxy oluşturma" width="800" data-path="images/develop/api-proxy-olusturma/db-api-proxy-olusturma.png" />

Bu adımdan sonra yapılabilecekler API Proxy dokümanı ile birebir aynıdır. Detayına gitmek için [API Proxy Oluşturma](/tr/develop/api-proxy-olusturma/api-proxy-olusturma) sayfasına bakabilirsiniz.

<Info>
  Bir DB-2-API'dan birden fazla API Proxy oluşturabilirsiniz.
</Info>

## Yükle (Deploy)/Yeniden Yükle (Redeploy)

DB-2-API'deki API Proxy'leri görüntülemek ve yönetmek için **API Proxy'leri Yönet (Manage API Proxies)** linkine tıklayarak açılan pencereden görüntülenir ve yönetilir. Açılan pencerede DB-2-API ile oluşturulan API Proxy'ler Yükle/Kaldır ve Yeniden Yükle işlemleri bu bölümde yapılır.

API Proxy'i deploy etmek için **API Proxy'leri Yönet (Manage API Proxies)** linkine tıklanarak deploy simgesine basılır.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-proxy-yonetme.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=5e5639af73570b28e48e281cdd39afcf" alt="API Proxy yönetme" width="600" data-path="images/develop/api-proxy-olusturma/db-api-proxy-yonetme.png" />

Yukarıdaki işlemden sonra onaylama yapmak gereklidir. Yükleme işlemiyle ilgili bilgileri oluşturup **(Yükle) Deploy** butonuna tıklanır.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-deploy.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=1ff7f6bd8448377be6877eb901ef0abc" alt="Deploy ekranı" width="600" data-path="images/develop/api-proxy-olusturma/db-api-deploy.png" />

DB-2-API'ye yeni bir *Method/Endpoint* eklendiğinde veya mevcut *Method/Endpoint*'lerden birisi güncellendiğinde, tüm API Proxy'lerin yeniden yüklenmesi gerekir.

Yeni bir *Method/Endpoint* eklediğinizde veya mevcut bir *Method/Endpoint*'i güncellediğinizde aşağıdaki gibi bir bilgilendirme gelecektir.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-yeniden-yukleme-bildirimi.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=05cfdf8e1ff53cf220f11bdc95c99e71" alt="Yeniden yükleme bildirimi" width="600" data-path="images/develop/api-proxy-olusturma/db-api-yeniden-yukleme-bildirimi.png" />

**Yeniden Yükle (Redeploy Required)** diyerek değişikliklerin API Proxy'lere uygulanması sağlanır.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-redeploy.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=abf436c7e239b427c6ce352660e0d525" alt="Redeploy ekranı" width="600" data-path="images/develop/api-proxy-olusturma/db-api-redeploy.png" />

Yukarıdaki işlemden sonra onaylama yapmak gereklidir. Yeniden yükleme işlemiyle ilgili bilgileri oluşturup **(Yeniden Yükle) Redeploy** butonuna tıklanır.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-redeploy-onay.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=30c8516ef1f41eb8d934d6c3d80be454" alt="Redeploy onay ekranı" width="600" data-path="images/develop/api-proxy-olusturma/db-api-redeploy-onay.png" />

DB-2-API sayfasından API Proxy'nin ismindeki link tıklanarak API Proxy'e gidilir.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-proxy-link.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=cba3da76a542be6505b95139a45193de" alt="DB-2-API'dan API Proxy'ye link" width="600" data-path="images/develop/api-proxy-olusturma/db-api-proxy-link.png" />

Benzer şekilde, API Proxy sayfasından DB-2-API sayfasına gitmek için aşağıdaki gibi API Proxy'deki DB-2-API ismine tıklayarak gidilir.

<img src="https://mintcdn.com/apinizer/brWu4H3JyK0OgbJV/images/develop/api-proxy-olusturma/db-api-geri-link.png?fit=max&auto=format&n=brWu4H3JyK0OgbJV&q=85&s=6dfd1a9c4330fbdb394a8635edcd83d6" alt="API Proxy'den DB-2-API'ye link" width="600" data-path="images/develop/api-proxy-olusturma/db-api-geri-link.png" />

## DB-2-API Silme

Bir DB-2-API silindiğinde ona bağlı olan tüm API Proxy'ler önce kaldırılır (Undeploy) sonra silinir.
