Files
GKNB_MSTM071/Backend/második gyakorlat_minta/README.md
T
2026-03-04 20:02:39 +01:00

2.0 KiB

Második Gyakorlat - MINTA Megoldás

Ez a mappa tartalmazza a második gyakorlat teljes, működő megoldását.

Amit implementáltunk:

1. Prisma ORM + SQLite

  • Prisma schema definiálása
  • User model adatbázis szinten
  • Migrációk kezelése

2. CQRS Pattern + Layered Architecture

  • API Layer: Controllers, Routes
  • Application Layer: Commands, Queries, Handlers
  • Domain Layer: Models, Interfaces
  • Infrastructure Layer: Prisma, Repositories

3. Repository Pattern

  • IUserRepository interface
  • UserRepository Prisma implementáció
  • Minden adatbázis művelet a repository-n keresztül

4. Domain Model

  • User osztály üzleti logikával
  • Validációk
  • Helper metódusok (isAdmin, canEdit, validate)

Indítás

npm install
npx prisma generate
npx prisma migrate dev --name init
npm run dev

A szerver elindul a http://localhost:3000 címen.

API Endpoints

  • GET /api/users - Összes user
  • GET /api/users/:id - Egy user
  • POST /api/users - User létrehozása
  • PUT /api/users/:id - User frissítése
  • DELETE /api/users/:id - User törlése

Példa Használat

# User létrehozása
curl -X POST http://localhost:3000/api/users \
  -H "Content-Type: application/json" \
  -d '{
    "email": "test@test.com",
    "name": "Test User",
    "password": "password123"
  }'

# Összes user lekérése
curl http://localhost:3000/api/users

# User frissítése
curl -X PUT http://localhost:3000/api/users/1 \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Name"
  }'

# User törlése
curl -X DELETE http://localhost:3000/api/users/1

Tanulási Pontok

  1. Prisma ORM: Modern ORM használata Node.js-ben
  2. SQLite: Egyszerű file-based adatbázis
  3. CQRS: Command/Query szétválasztás
  4. Layered Architecture: Rétegezett architektúra
  5. Domain Model: Üzleti logika a domain rétegben
  6. Repository Pattern: Adatelérés absztrakciója