Treci la conținutul principal

Un API mic, dar complet

E momentul să punem piesele cap la cap: un API pentru utilizatori cu cele cinci rute clasice —

POST /users creează · GET /users listează · GET /users/{id} citește unul · PUT /users/{id} înlocuiește · DELETE /users/{id} șterge.

Depozitul este o hartă ținută în memorie, așa că exemplul rămâne de sine stătător. (Un server real tratează cererile în paralel, deci o versiune de producție ar proteja harta cu un lacăt și probabil ar înlocui-o cu o bază de date — forma funcțiilor de tratare nu s-ar schimba.)


Creare și listare

POST decodifică JSON-ul primit, îi dă utilizatorului un id, îl salvează și răspunde cu 201 și înregistrarea creată — id-ul inclus, ca să îl afle și clientul. GET întoarce toți utilizatorii ca tablou JSON.

POST /users și GET /users

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

Prompt
Scrie un program Go care implementează partea de creare și de listare a unui API REST pentru utilizatori, folosind un mux și o hartă în memorie: POST /users decodifică JSON-ul, atribuie un id și răspunde cu 201 și utilizatorul creat; GET /users răspunde cu tabloul JSON al tuturor utilizatorilor. Servește cu httptest, creează pe Ana și pe Ben, listează-i și afișează fiecare status și corp al răspunsului.
Ieșire: program Go și rezultatul capturat

Citirea unuia, înlocuirea, ștergerea

Rutele cu {id} completează setul: citirea răspunde cu 200 sau 404, înlocuirea decodifică datele noi peste id-ul existent, iar ștergerea răspunde cu 204. După ștergere, același GET care mergea înainte întoarce cinstit 404 — resursa nu mai există.

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

Viața completă a unei resurse: o citim, o înlocuim (răspunsul poartă numele nou), o ștergem și nu mai reușim să o citim — fiecare pas cu codul de status corect.

Prompt
Scrie un program Go care implementează GET, PUT și DELETE pentru /users/{id} peste o hartă în memorie inițializată cu un singur utilizator: GET răspunde cu 200 sau 404 și JSON, PUT înlocuiește utilizatorul păstrând id-ul, DELETE răspunde cu 204. Servește cu httptest și parcurge întregul ciclu de viață — citire, înlocuire, ștergere, citire din nou — afișând fiecare metodă, status și corp al răspunsului.
Ieșire: program Go și rezultatul capturat