> ## 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 Mock API oluşturma

> Mock API ile teknik bilgi veya yazılım geliştirme ihtiyacı olmadan kolay ve hızlı bir şekilde REST API oluşturabilirsiniz. Blank ve Spec dosyası yükleyebilir, Endpoint oluşturabilir, koşullu yanıtları yönetebilir ve Swagger ile OpenAPI dokümantasyon oluşturabilirsiniz

<CardGroup cols={2}>
  <Card title="Hızlı API Oluşturma" icon="rocket">
    API Dokümantasyonu üzerinden ya da varsayılan CRUD operasyonlarını içeren bir API anında oluşturulup, API Proxy olarak anında kullanıcıların erişimine açılabilirsiniz.
  </Card>

  <Card title="Koşullu Yanıtlar" icon="code">
    Apinizer, yanıta eklenen koşullar sayesinde, isteğin başlık, gövde ya da parametre değerleri baz alınarak **koşula göre farklı yanıtlar alınmasını sağlar.**
  </Card>

  <Card title="API Dokümantasyonu" icon="file-code">
    Oluşturulan Mock API'lerin, Swagger ve OpenAPI türündeki API tanım belgelerine on the fly olarak JSON ve YAML formatında erişilebilir.
  </Card>
</CardGroup>

## Yeni Mock API Oluşturma

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

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

    <img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock1.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=6e0105fd85e24fcc5337c595bfb97e01" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock1.png" />
  </Step>

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

<AccordionGroup>
  <Accordion title="Blank tipinde Mock API Oluşturma">
    Bu tipte API oluşturmak, API endpoint'lerinin kullanıcı tarafından tasarlanacağı anlamına gelmektedir.

    <Info>
      Eğer **Generate CRUD Operations** seçeneği aktifleştirilirse, API'ye GET, POST, PUT, DELETE endpoint'leri otomatik olarak eklenmiş olur.
    </Info>

    <img src="https://mintcdn.com/apinizer/xcpaeYP822whFSPn/images/develop/api-proxy-olusturma/mpck-api-create-ekran%C4%B1.png?fit=max&auto=format&n=xcpaeYP822whFSPn&q=85&s=9bfcb846858ebd278300b29286a68329" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mpck-api-create-ekranı.png" />
  </Accordion>

  <Accordion title="Open API veya Swagger'dan Mock API Oluşturma">
    Bu tipte API oluşturmak, API'nın tanım belgesi üzerinden oluşturulacağı anlamına gelmektedir.

    İçe aktarılacak ya da linki verilecek API dokümanın tipi Swagger ya da Open API olmalıdır.

    <img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock3.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=1554a5aca677c9f8bfc7087269f76e76" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock3.png" />
  </Accordion>
</AccordionGroup>

### Mock API Tanım Alanları

Mock API'nın tanımı için kullanılan alanlar aşağıdaki tabloda görülmektedir.

| Alan                               | Açıklama                                                                                                    |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| **Tip** (Type)                     | Mock API Oluşturma tipidir. Blank ve Spec dosyası yükleyerek yapılır.                                       |
| **Ad** (Name)                      | API'ye kullanıcı tarafından verilen addır. Arayüzlerde bu ad görünür.                                       |
| **Açıklama** (Description)         | API'nin tanım bilgisidir.                                                                                   |
| **Generate CRUD Operations**       | Mock API için GET, POST, PUT ve DELETE tiplerinde hazır metot/endpoint'ler oluşturulması istenirse seçilir. |
| **API Spec Tipi** (API Spec Type)  | Yüklenecek Spec dosyasının tür bilgisidir. Desteklenen türler: OpenAPI 3.0.x, Swagger 2.x                   |
| **İçe Aktarma Tipi** (Import Type) | Yüklenecek Spec dosyasının tür bilgisidir. Desteklenen tipler: URL, Upload File                             |
| **URL**                            | Yüklenecek Spec dosyasının adresi.                                                                          |

## Endpoint Oluşturma

<Info>
  Eğer *Generate CRUD Operations* seçeneği seçilmişse varsayılan olarak GET, POST, PUT, DELETE tiplerinde metot/endpoint'ler hazır gelecektir.
</Info>

<Steps>
  <Step title="Endpoint Ekle">
    **Ekle (Add)** butonuna tıklayarak yeni metot/endpoint eklenir.

    <img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock4.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=7e1bb66b72c277ff69be41b577cf621d" alt="Image 2024 9 9 15 35 35 Pn" width="400" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock4.png" />
  </Step>

  <Step title="Endpoint Bilgilerini Doldurun">
    Gelen ekranda **Ekle** tuşuna tıklayarak API'ye metot/endpoint eklenir. *Method/Endpoint* tanımlama ekranındaki alanlar doldurularak **Kaydet** tuşuna tıklanır.

    <img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock5.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=811fb2f6e9c49e715233387d2337d246" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock5.png" />
  </Step>
</Steps>

### Yanıt Ekleme ya da Düzenleme

Yanıt Bilgisi (Response Information) bölümünden metot/endpoint'e ait yanıtlar yönetilir.

<Info>
  Yanıt tanımları, Durum Kodu (Status Code) bilgisine göre gruplandırılarak oluşturulur. Her yanıt tanımı içinde koşul bazlı birden fazla örnek yanıt oluşturulabilir.
</Info>

<img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock6.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=4dd1c59554466d1b6701ba45353ee517" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock6.png" />

Yanıt ekleme/düzenleme konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.

| Alan                                    | Açıklama                                          |
| --------------------------------------- | ------------------------------------------------- |
| **Durum Kodu** (Status Code)            | HTTP durum kodu bilgisidir.                       |
| **Açıklama** (Description)              | Metot/endpoint'in tanım bilgisidir.               |
| **Başlık** (Headers)                    | HTTP Headers bilgileri girilir.                   |
| **Yanıt Örnekleri** (Response Examples) | Kullanıcıya gönderilecek olan yanıt örnekleridir. |

### Yanıt Örneklerini Ekleme ya da Düzenleme

Bir yanıt tanımına birden fazla gövde ve koşul tanımı oluşturarak örnekler eklenebilir. Böylelikle istek aynı metoda geldiğinde farklı durumlar altında farklı yanıtların istemciye gönderilmesi sağlanabilir.

<img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock7.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=74da1c9c73cc91551a8fdae0e57e0f09" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock7.png" />

Örnek Yanıt ekleme/düzenleme konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.

| Alan                                 | Açıklama                                                                                          |
| ------------------------------------ | ------------------------------------------------------------------------------------------------- |
| **Yanıt İçerik Tipi** (Content Type) | Cevap olarak dönecek gövdenin (body) içerik tipidir.                                              |
| **Koşul** (Condition)                | Tanımlanan örnek yanıtın hangi koşul ile karşılaşıldığında döneceğini tanımlamak için kullanılır. |
| **Yanıt Gövdesi** (Response Body)    | Kullanıcıya dönecek yanıtın gövdesi (body) yazılır.                                               |

## Mock API'den API Proxy Oluşturma

En az bir tane metot/endpoint olduğunda **API Proxy Oluştur** tuşuna tıklayarak Mock API için bir API Proxy oluşturulur.

<Info>
  Mock API'den API Proxy oluşturmak için en az bir metot/endpoint olmalıdır.
</Info>

<img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock8.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=c6670acc03eaff89297437574fcad304" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock8.png" />

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

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.

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

Mock API'deki API Proxy'leri görüntülemek ve yükleme durumlarını yönetmek için **API Proxy'leri Yönet** linkine tıklayarak açılan pencere kullanılır.

Açılan pencerede Mock API ile oluşturulan API Proxy'ler Yükle/Kaldır ve Yeniden Yükle işlemleri bu bölümde yapılır. Detayına gitmek için [Yükleme, Yeniden Yükleme, Kaldırma, Deployment Geçmişi ve Rollback](/tr/develop/yukleme-ve-surum-yonetimi) sayfasına bakabilirsiniz.

API Proxy'i deploy etmek için aşağıdaki adımlar izlenir.

<img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock9.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=5e5915f13db9ce3d4f2d7522126af283" alt="Image 2024 9 9 15 35 35 Pn" width="600" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock9.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/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock10.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=8f9544243aae3a078f47bd7dc393b19b" alt="Image 2024 9 9 15 35 35 Pn" width="600" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock10.png" />

<Warning>
  Mock API'ye yeni bir endpoint eklendiğinde veya endpoint içinde değişiklik yapıldığında değişikliğin geçerli
  olabilmesi için bu API'den oluşturulan tüm API Proxy'lerin yeniden yüklenmesi gerekir.
</Warning>

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

<img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock11.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=24ddba17ea455068e82e113a1af1050c" alt="Image 2024 9 9 15 35 35 Pn" width="600" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock11.png" />

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

<img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock12.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=f07d8960b1c084a526f3a5b1493a3a5c" alt="Image 2024 9 9 15 35 35 Pn" width="600" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock12.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/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock13.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=6db2b2343a939609fd97051a7437455a" alt="Image 2024 9 9 15 35 35 Pn" width="600" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock13.png" />

Mock API sayfasından API Proxy'nin ismine tıklanarak API Proxy'e gidilir.

<img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock14.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=ac12e68c368f895a7b63e1b119ec4b39" alt="Image 2024 9 9 15 35 35 Pn" width="600" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock14.png" />

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

<img src="https://mintcdn.com/apinizer/ZcdqzXb0ZF1OeNQr/images/develop/api-proxy-olusturma/mock15.png?fit=max&auto=format&n=ZcdqzXb0ZF1OeNQr&q=85&s=5323c4d3e26099cebca1d4dc55323b1a" alt="Image 2024 9 9 15 35 35 Pn" width="600" className="mr-auto" data-path="images/develop/api-proxy-olusturma/mock15.png" />

## Mock API Silme

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