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.


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.


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çenek | Açı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 ikisi | Aynı domain modelleri için hem GraphQL resolver'lar hem de REST controller'lar oluşturur. |
Kalıcılık Katmanı
| Seçenek | Açı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çi | Veritabanı 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
Userentity 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:
/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.mdHer Dosyanın İçeriği
| Dosya | Amaç |
|---|---|
| Entity | Dekoratörlerle (TypeORM veya Mongoose) veritabanı şema tanımı |
| Service | CRUD işlemleri ve ilişki yönetimi ile iş mantığı katmanı |
| Controller/Resolver | Girdi doğrulama ile endpoint'leri açan API katmanı |
| DTO'lar | Girdi doğrulama için class-validator dekoratörleriyle veri transfer nesneleri |
| Module | Service, controller ve entity'yi bir araya getiren NestJS modülü |
| Common | Modü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:
npm install
npm run start:devBackend, 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


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ı?


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.


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