Treci la conținutul principal

Un API mic și complet

E timpul să asamblăm piesele: un API de utilizatori cu cele cinci endpoint-uri clasice —

POST /users creare · GET /users listare · GET /users/{id} citirea unuia · PUT /users/{id} înlocuire · DELETE /users/{id} ștergere.

Depozitul este un Map în memorie, astfel încât exemplul rămâne de sine stătător. Node.js rulează handlerele tale unul după altul pe un singur fir de execuție, așa că nimic de aici nu are nevoie de blocări; un server real ar înlocui Map-ul cu o bază de date, iar handlerele nu și-ar schimba forma.


Creare și listare

POST citește JSON-ul primit din corpul cererii, îi dă utilizatorului un id, îl stochează și răspunde cu 201 și înregistrarea creată — id-ul inclus, ca să îl afle și clientul. GET returnează pe toți sub forma unui tablou JSON.

Corpul nu sosește dintr-o dată, așa că un mic ajutor readBody adună bucățile cu for await înainte ca JSON.parse să le vadă.

POST /users și GET /users

Două creări, apoi listarea: fiecare POST răspunde cu 201 și utilizatorul stocat, iar GET-ul final îi arată pe amândoi — starea API-ului a crescut cu fiecare cerere.

Prompt
Scrie un program TypeScript care implementează partea de creare și listare a unui API REST de utilizatori peste node:http și un Map în memorie: POST /users analizează corpul JSON, atribuie un id și răspunde cu 201 și utilizatorul creat; GET /users răspunde cu tabloul JSON al tuturor utilizatorilor. Pornește-l pe portul 0, creează pe Ana și pe Ben, listează-i și afișează fiecare status și corp.
Ieșire: program TypeScript și rezultatul capturat

Citirea unuia, înlocuire, ștergere

Rutele cu {id} completează setul: citirea răspunde cu 200 sau 404, înlocuirea preia datele noi și păstrează id-ul din URL, ștergerea răspunde cu 204. După ștergere, același GET care funcționa înainte returnează cinstit 404 — resursa nu mai există.

GET, PUT și DELETE pe /users/{id}

Viața completă a unei resurse: o citești, o înlocuiești (răspunsul poartă numele nou Ana Maria), o ștergi și nu reușești să o mai citești — fiecare pas cu codul de status corect.

Prompt
Scrie un program TypeScript care implementează GET, PUT și DELETE pentru /users/{id} peste un Map în memorie inițializat cu un singur utilizator: GET răspunde cu 200 sau 404 și JSON, PUT înlocuiește utilizatorul dar păstrează id-ul din URL, DELETE răspunde cu 204. Pornește-l pe portul 0 și parcurge întregul ciclu de viață — citește, înlocuiește, șterge, citește din nou — afișând fiecare metodă, status și corp.
Ieșire: program TypeScript și rezultatul capturat