Treci la conținutul principal

Cealaltă față a API-ului

Programele Go nu sunt doar servere — ele apelează și API-uri: aduc date, vorbesc cu servicii, integrează furnizori externi. Partea de client din net/http înseamnă trei obiceiuri:

1. trimite cererea (http.Get, http.Post sau http.NewRequest pentru control complet),
2. întotdeauna defer resp.Body.Close(),
3. verifică codul de stare înainte de a te încrede în corpul răspunsului.

Demonstrațiile de mai jos apelează un server de test local, așa că rezultatele sunt stabile — codul clientului este exact cel pe care l-ai îndrepta către un URL real.


GET și decodificare

Sarcina de zi cu zi: faci GET pe un URL, verifici starea, decodifici JSON-ul direct din corpul răspunsului în structuri cu json.NewDecoder(resp.Body).Decode(&value) — fără niciun șir de caractere intermediar.

Aduci o listă în structuri

Corpul răspunsului se decodifică direct în []User, iar de acolo încolo sunt date Go obișnuite — parcurse în buclă și afișate câmp cu câmp.

Prompt
Scrie un program Go care face GET pentru un tablou JSON de utilizatori de la un server (un server httptest în demonstrație), verifică codul de stare, decodifică corpul răspunsului direct într-un slice de structuri User cu json.NewDecoder și afișează id-ul și numele fiecărui utilizator.
Ieșire: program Go și rezultatul capturat

POST cu un corp JSON

Trimiterea datelor este imaginea în oglindă: serializezi structura, împachetezi octeții într-un reader, faci POST cu tipul de conținut corect — apoi decodifici răspunsul serverului, care aici conține id-ul atribuit de server.

Trimiți o structură, citești răspunsul

Structura pleacă sub formă de JSON, iar înregistrarea creată se întoarce cu noul ei id — întreg drumul de scriere al unui client de API într-un singur program mic.

Prompt
Scrie un program Go care serializează în JSON o structură User nouă, o trimite prin POST cu tipul de conținut application/json către un server care atribuie un id și răspunde cu 201 (un server httptest în demonstrație), apoi decodifică răspunsul și afișează starea și utilizatorul creat împreună cu noul său id.
Ieșire: program Go și rezultatul capturat