Treci la conținutul principal

Serverul te apelează pe tine

Un server web în Python (modulul standard http.server) este construit din clase handler: creezi o subclasă a lui BaseHTTPRequestHandler și scrii o metodă do_GET. Serverul acceptă conexiunile și apelează metoda ta o dată pentru fiecare cerere — self.path și self.headers conțin cererea, iar send_response, send_header și self.wfile construiesc răspunsul.

Un server real apelează serve_forever() pe un port fix și rulează la nesfârșit. Exemplele de aici aleg portul 0 — un port liber aleatoriu — și rulează serve_forever într-un fir de execuție în fundal, astfel încât fiecare exemplu își pornește serverul, îl folosește și se termină singur. De asemenea, ele suprascriu log_message cu o metodă goală: clasa de bază afișează o linie de jurnal cu marcaj de timp pentru fiecare cerere, iar demonstrațiile au nevoie de o ieșire curată și stabilă.


Primul handler

Cel mai mic handler posibil scrie o linie de text. Tot ce face un API — JSON, coduri de stare, rutare — se întâmplă în interiorul unei metode cu aceeași formă.

Salut de la un handler

Handler-ul scrie în self.wfile; clientul citește exact acel conținut drept corp al răspunsului, cu linia de stare aleasă prin send_response(200).

Prompt
Scrie un program Python cu cea mai mică subclasă BaseHTTPRequestHandler a cărei metodă do_GET scrie o linie de salut, servește-o pe un port liber într-un fir de execuție în fundal, trimite o cerere GET și afișează codul de stare și corpul răspunsului.
Ieșire: program Python complet

Răspunsul cu JSON

Un handler de API face trei lucruri: alege un cod de stare, setează antetul Content-Type și scrie datele codificate — json.dumps construiește textul, iar self.wfile.write trimite octeții.

Ordinea contează: mai întâi send_response, apoi antetele, apoi end_headers și abia după aceea corpul.

Un endpoint JSON

Handler-ul pune un dicționar direct în răspuns. Clientul primește JSON valid și tipul de conținut corect — acesta este scheletul fiecărui endpoint din restul acestui grup.

Prompt
Scrie un program Python cu un handler care răspunde cu un utilizator JSON construit prin json.dumps și un antet Content-Type, servește-l pe un port liber într-un fir de execuție în fundal, trimite o cerere către el și afișează codul de stare, tipul de conținut și corpul JSON.
Ieșire: program Python complet