Treci la conținutul principal

Un API mic, dar complet

E timpul să punem piesele laolaltă: 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.

O decizie specifică PHP: fiecare cerere rulează scriptul de rutare de la zero, așa că datele nu pot trăi într-o variabilă între cereri. API-urile reale păstrează starea într-o bază de date; aici rolul acesta îl joacă un mic fișier JSON — routerul îl încarcă, îl modifică, îl salvează înapoi. Handlerele și-ar păstra forma dacă fișierul ar fi înlocuit cu o bază de date reală.


Creare și listare

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

POST /users și GET /users

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

Prompt
Scrie un script PHP care implementează partea de creare și listare a unui REST API de utilizatori, cu un script de rutare și un fișier JSON ca depozit: POST /users decodează corpul cererii, atribuie un id și răspunde 201 cu utilizatorul creat; GET /users răspunde cu tabloul JSON al tuturor utilizatorilor. Servește-l cu serverul încorporat, creează Ana și Ben, listează-i și afișează fiecare status și corp de răspuns.
Ieșire: script PHP

Citirea unuia, înlocuire, ștergere

Rutele /users/{id} completează setul: citirea răspunde 200 sau 404, înlocuirea decodează datele noi în id-ul existent, ștergerea răspunde 204. După ștergere, același GET care funcționa î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 conține numele nou), o ștergem și nu mai reușim să o citim — fiecare pas cu codul de status corect.

Prompt
Scrie un script PHP care implementează GET, PUT și DELETE pentru /users/{id} peste un depozit de tip fișier JSON inițializat cu un singur utilizator: GET răspunde 200 sau 404 cu JSON, PUT înlocuiește utilizatorul păstrând id-ul, DELETE răspunde 204. Servește-l cu serverul încorporat și rulează întregul ciclu de viață - citire, înlocuire, ștergere, citire din nou - afișând fiecare metodă, status și corp de răspuns.
Ieșire: script PHP