Bunu Neden İnşa Ettim?
"Esnek tipli (loosely-typed) ve mimari disiplinden yoksun standart Node.js/Express backend'leri karmaşık e-ticaret domainlerinde spagetti koda dönüşmeye meyillidir. MangaSokağı'nın işlem hacmini ve veri bütünlüğünü yönetebilmek için, kontrolcüleri (controllers) iş mantığından (business logic) kesin bir şekilde ayıran, katı tip denetimine sahip ve ölçeklenebilir bir kurumsal API katmanı kurmam gerekiyordu."
Mimari & Kararlar
Sistem, NestJS'in modüler yapısına dayanır (`admin`, `auth`, `category`, `manga`, `user`). Güvenlik katmanı, request yaşam döngüsüne (lifecycle) interceptor olarak dahil olan `auth.guard.ts` üzerinden yürütülen JWT tabanlı Role-Based Access Control (RBAC) ile sağlanır. Veritabanı erişimi `prisma.service.ts` aracılığıyla yönetilir. Prisma'nın AST tabanlı oluşturduğu (`generated/prisma`) tipler sayesinde, veritabanı şemasından HTTP yanıtlarına (response) kadar %100 tip güvenliği garanti edilir. Dağıtım izolasyonu (deployment isolation) için bağımsız Dockerfile konfigürasyonları uygulanmıştır.
Temel Özellikler
- 01.Controller ve Business Logic katmanlarının katı mimari ayrımı (Separation of Concerns)
- 02.`auth.guard.ts` üzerinden yürütülen, endpoint seviyesinde JWT tabanlı RBAC (Role-Based Access Control)
- 03.Prisma ORM ile otomatik oluşturulan (auto-generated) ve derleme zamanı (compile-time) hata yakalayan tip-güvenli veritabanı istemcisi
- 04.İzole edilmiş ortam başlatma (environment initialization) ve testler için deterministik Seed modülü
- 05.Taşınabilir (portable) mikroservis dağıtımı için optimize edilmiş Docker konteynerizasyonu