Skip to content

Dışa Aktarım

Dışa aktarım, model niyeti ile sahip olunan backend uygulaması arasında köprü görevi görür. Doğrulanmış Mockomat projeni alır ve tamamen sana ait, üretime hazır bir NestJS backend oluşturur — Mockomat'a runtime bağımlılığı yok, vendor kilidi yok.

Oluşturulan kod senindir. Kısıtlama olmadan değiştirebilir, genişletebilir, deploy edebilir ve ticarileştirebilirsin.

Dışa Aktarım Hedefleri

Dışa aktarım, şu özelliklere sahip bir başlangıç backend'i üretmelidir:

  • Okunabilir — NestJS kurallarını ve en iyi uygulamaları takip eden temiz, iyi yapılandırılmış kod.
  • Yapısal — sorumluluk ayrımının net olduğu domain modülleriyle organize.
  • İzlenebilir — oluşturulan her module, entity ve resolver Mockomat modeline geri eşlenir.
  • Takım sahipliği için hazır — geliştirme takımının üzerine hemen inşa edebileceği kod kalitesi.

Amaç, backend geliştirmenin yerine geçmek değil — tekrarlayıcı iskele aşamasını ortadan kaldırmak ve takımının birinci günden itibaren iş mantığı üzerine odaklanmasını sağlamaktır.

Screenshot ex-01-export-configScreenshot ex-01-export-config
ex-01-export-configMissing

Hedef seçenekleriyle dışa aktarım yapılandırma paneli.

Girdi Kaynakları

Dışa aktarım, iki kaynaktan backend oluşturabilir:

Mockomat Yerel Projesi

Mevcut proje meta verilerini kullan — tüm entity'ler, attribute'lar, ilişkiler, eşleştirmeler ve API yapılandırmaları üretim girdisi olarak kullanılır. Bu, çoğu kullanıcı için önerilen yoldur.

OpenAPI İçeri Aktarımı

Bir OpenAPI belirtimi (JSON veya YAML) yükle ve doğrudan belirtimden bir backend üret. Bu, Mockomat dışında tanımlanmış bir API sözleşmen olduğunda ve uygulamayı oluşturmak istediğinde faydalıdır.

Screenshot ex-01b-input-sourcesScreenshot ex-01b-input-sources
ex-01b-input-sourcesMissing

Dışa aktarım kaynak seçimi: Mockomat projesi veya OpenAPI içeri aktarımı.

Dışa Aktarım Seçenekleri

Dışa aktarım başlatırken, oluşturulan backend'in şeklini belirleyen birkaç seçenek yapılandırırsın:

API Stili

SeçenekAçıklama
GraphQL (code-first)NestJS GraphQL dekoratörleri kullanarak resolver'lar, nesne tipleri ve girdi tipleri oluşturur.
REST (OpenAPI tabanlı)Route dekoratörleri ve Swagger notasyonlarıyla controller'lar oluşturur.
Her ikisiAynı domain modelleri için hem GraphQL resolver'lar hem de REST controller'lar oluşturur.

Kalıcılık Katmanı

SeçenekAçıklama
TypeORM (SQL)İlişkisel veritabanlarını (PostgreSQL, MySQL, MariaDB) hedefleyen TypeORM dekoratörleriyle entity'ler oluşturur.
Mongoose (MongoDB)Mongoose aracılığıyla MongoDB için şema ve modeller oluşturur.
Bellek içiVeritabanı kurulumu olmadan hızlı prototipleme için basit bellek içi depolar oluşturur.

Kimlik Doğrulama İskelesi

Oluşturulan proje isteğe bağlı JWT kimlik doğrulama iskelesi içerir:

  • Temel bir User entity taslağı
  • JWT guard yapılandırması
  • Korumalı endpoint dekoratörleri
  • Giriş ve kayıt endpoint taslakları

Bu iskele bir başlangıç noktası sağlar — taslakları gerçek kimlik doğrulama mantığınla değiştirirsin.

Neler Oluşturulur

Dışa aktarım, eksiksiz ve çalıştırılabilir bir NestJS projesi üretir:

text
/nestjs-backend
  /src
    /modules
      /customer
        customer.module.ts
        customer.controller.ts    (REST) or customer.resolver.ts (GraphQL)
        customer.service.ts
        customer.entity.ts
        /dto
          create-customer.dto.ts
          update-customer.dto.ts
      /order
        order.module.ts
        order.controller.ts
        order.service.ts
        order.entity.ts
        /dto
          create-order.dto.ts
          update-order.dto.ts
    /common
      /filters
      /interceptors
      /pipes
    app.module.ts
    main.ts
  package.json
  tsconfig.json
  README.md

Her Dosyanın İçeriği

DosyaAmaç
EntityDekoratörlerle (TypeORM veya Mongoose) veritabanı şema tanımı
ServiceCRUD işlemleri ve ilişki yönetimi ile iş mantığı katmanı
Controller/ResolverGirdi doğrulama ile endpoint'leri açan API katmanı
DTO'larGirdi doğrulama için class-validator dekoratörleriyle veri transfer nesneleri
ModuleService, controller ve entity'yi bir araya getiren NestJS modülü
CommonModüller arasında kullanılan paylaşımlı filtreler, interceptor'lar ve pipe'lar

Tipik Dışa Aktarım Akışı

1. Model ve Runtime Hazırlığını Doğrula

Dışa aktarımdan önce runtime doğrulama kontrol listesini incele. Şunları teyit et:

  • Tüm entity'lerin eksiksiz attribute eşleştirmeleri var.
  • İlişkiler önizlemede doğru çözümleniyor.
  • Filtre ve sıralama işlemleri beklendiği gibi çalışıyor.
  • Çözümlenmemiş ipucu kalmamış.

Temiz bir runtime doğrulama geçişi, oluşturulan kodun kalitesini önemli ölçüde artırır.

2. Dışa Aktarım Seçeneklerini Belirle

API stilini, kalıcılık katmanını ve kimlik doğrulama tercihlerini seç. Emin değilsen, GraphQL + TypeORM ile başla — bu, NestJS backend'ler için en yaygın yapılandırmadır.

3. Paketi Oluştur

Oluştur'a tıkla ve backend projesinin derlenmesini bekle. Oluşturma süreci tam model yapılandırmanı okur ve tüm dosyaları tek geçişte üretir.

4. İndir ve Yerel Olarak Çalıştır

Oluşturulan proje .zip dosyası olarak sunulur. Çıkart ve çalıştır:

bash
npm install
npm run start:dev

Backend, hot reload etkin olarak yerel bir portta başlar. Tercih ettiğin GraphQL istemcisi veya REST aracı ile API'yi hemen test edebilirsin.

5. Uygulama Takımına Devret

Oluşturulan proje bir başlangıç noktasıdır, bitmiş bir ürün değil. Geliştirme takımına şu konularda net bağlam ile devret:

  • Nelerin oluşturulduğu ve neden
  • Hangi kısımların üretime hazır olduğu
  • Hangi kısımların özel uygulama gerektirdiği
Screenshot ex-02-generated-structureScreenshot ex-02-generated-structure
ex-02-generated-structureMissing

Oluşturulan backend proje yapısı genel görünümü.

Dışa Aktarım Sonrası Neleri İncelemeli

Backend'ini oluşturduktan sonra, üzerine inşa etmeden önce şu alanları incele:

Modül Sınırları ve Adlandırma

  • Her modül, Mockomat modelindeki bir domain entity'sine karşılık geliyor mu?
  • Modül, service ve controller adları tutarlı ve anlamlı mı?
  • Dosya organizasyonu takımının kurallarına uyuyor mu?

DTO ve Doğrulama Kapsamı

  • DTO'lar tüm zorunlu alanları içeriyor mu?
  • class-validator dekoratörleri doğru uygulanmış mı (örneğin @IsString(), @IsNumber(), @IsOptional())?
  • Oluşturma ve güncelleme DTO'ları uygun şekilde farklılaşıyor mu (oluşturma tüm alanları gerektirir, güncelleme kısmi izin verir)?

Resolver/Controller Yapısı

  • Tüm hedeflenen endpoint'ler oluşturulmuş mu?
  • Route yolları veya sorgu adları API tasarımınla eşleşiyor mu?
  • Guard'lar ve dekoratörler doğru uygulanmış mı?

İlişki Yönetimi

  • Entity ilişkileri doğru dekoratörlerle tanımlanmış mı (@OneToMany, @ManyToOne, @ManyToMany)?
  • Service katmanı ilişki yüklemesini yönetiyor mu (eager vs lazy)?
  • Cascading seçenekleri uygun yapılandırılmış mı?
Screenshot ex-02b-code-reviewScreenshot ex-02b-code-review
ex-02b-code-reviewMissing

Dışa aktarım sonrası kod inceleme kontrol listesi görünümü.

Dışa Aktarım Sonrası Devir Kontrol Listesi

Oluşturulan projeyi uygulama takımına devrederken bu kontrol listesini kullan:

  • Modül/domain bazında sahiplik ata — her modülün genişletmeden sorumlu net bir sahibi olmalıdır.
  • Oluşturulan ve özel olanı tanımla — hangi dosyaların oluşturulmuş iskele, hangilerinin özel iş mantığı gerektirdiğini işaretle.
  • Bilinen eksiklikleri belgele — Mockomat'ın oluşturmadığı özellikleri belgele (karmaşık iş kuralları, dış entegrasyonlar, arka plan işleri).
  • Sürüm kontrolü kur — oluşturulan kodu ilk temel olarak commit et ve oradan dallan.
  • Ortamları yapılandır — veritabanı bağlantılarını, ortam değişkenlerini ve deploy pipeline'larını kur.
  • Tam test paketini çalıştır — oluşturulan kod derlense de, entegrasyon testleriyle davranışı erken doğrula.
Screenshot ex-03-post-export-runScreenshot ex-03-post-export-run
ex-03-post-export-runMissing

İlk yerel çalıştırma ve doğrulama kontrol listesi.

Kod Sahipliği

Oluşturulan kod %100 sana aittir. Mockomat'a runtime bağımlılığı yoktur, oluşturulan çıktı üzerinde lisans ücreti yoktur ve ticari kullanım kısıtlaması yoktur. Şunları yapabilirsin:

  • Oluşturulan kodun her satırını değiştirme
  • Herhangi bir altyapıya deploy etme (AWS, GCP, Azure, on-premise)
  • Atıf gerektirmeden ticari ürünlerde kullanma
  • Müşteriler, iş ortakları veya open-source topluluklarıyla paylaşma

Oluşturulan proje standart bir NestJS uygulamasıdır. Herhangi bir NestJS geliştiricisi hemen genişletebilir.