Production-Ready Node.js RESTful API Geliştirme Prompt'u

Koddly

Administrator
Yönetici
Node.js RESTful API Geliştirme Prompt'u

Aşağıdaki gereksinimlere ve best practice'lere uygun, production-ready bir Node.js RESTful API oluştur:



1. Temel Mimari
  • Express.js framework kullan
  • Katmanlı mimari yapısı (Controller → Service → Repository)
  • Async/await kullan, callback kullanma

2. Input Validasyonu
  • Joi veya express-validator ile request validasyonu
  • Body, params, query parametrelerini validate et
  • Custom validation kuralları tanımla
  • Validation error'larını anlamlı mesajlarla döndür

3. Response Şeması
  • Tutarlı response formatı kullan:
Kod:
{
  "success": true/false,
  "data": {},
  "message": "string",
  "error": {}
}
  • HTTP status kodlarını doğru kullan (200, 201, 400, 401, 403, 404, 500, etc.)

4. HTTP Status Yönetimi
  • Her endpoint için uygun HTTP status kodları
  • RESTful standartlara uy (GET: 200, POST: 201, DELETE: 204, etc.)

5. Asenkron İşlemler
  • Promise chain veya async/await kullan
  • İç içe callback yapısından (callback hell) kaçın
  • Promise.all() ile paralel işlemleri optimize et

6. Şifre Güvenliği
  • bcrypt veya argon2 ile asimetrik şifreleme
  • Salt rounds minimum 10
  • Veritabanında plain text şifre saklanmamalı
  • Şifre hash'leme için ayrı utility fonksiyonu

7. Error Handling
  • Global error handler middleware
  • Custom error class'ları (ValidationError, AuthenticationError, NotFoundError, etc.)
  • Uncaught exception ve unhandled rejection handling:
Kod:
process.on('uncaughtException', handler)
process.on('unhandledRejection', handler)
  • Try-catch blokları ile hata yakalama
  • Hataları loglama (winston veya morgan)

8. Presenter/Formatter Pattern
  • Response data'yı formatlamak için presenter katmanı
  • Sensitive bilgileri filtrele (password, internal id'ler)
  • DTO (Data Transfer Object) pattern'i kullan
  • Veritabanı modellerini direkt expose etme

9. Request Immutability
  • Request objesini direkt mutate etme
  • Yeni objeler oluştur veya spread operator kullan
  • req.body, req.params, req.query'yi kopyala

10. Ek Best Practices
  • Environment variables (.env) ile konfigürasyon
  • Rate limiting middleware
  • CORS yapılandırması
  • Helmet.js ile güvenlik header'ları
  • Request logging
  • API versioning (/api/v1)
  • Swagger/OpenAPI dokümantasyonu

11. Proje Yapısı
Kod:
src/
├── config/
├── controllers/
├── services/
├── repositories/
├── models/
├── middlewares/
├── validators/
├── presenters/
├── utils/
├── errors/
└── routes/



Örnek Endpoint İstekleri:
  • User CRUD operasyonları
  • Authentication (register, login, logout)
  • Authorization middleware (JWT)
  • Pagination ve filtering



Yukarıdaki gereksinimlere tam uyumlu, temiz, okunabilir ve maintainable kod üret.
 
Geri
Üst