Sari la conținutul principal

Aplicația Ticketing API

În restul laboratorului folosim repository-ul Cloud-Computing-UPB/lab1.

git clone https://github.com/Cloud-Computing-UPB/lab1.git
cd lab1

Ce face aplicația?​

Ticketing API este un serviciu REST scris în Go care permite crearea și gestionarea unor tichete. Aplicația poate stoca datele fie în memorie, fie într-o bază de date PostgreSQL.

MetodăRutaRol
GET/healthverifică dacă serviciul răspunde
GET/ticketslistează tichetele
POST/ticketscreează un tichet
GET/tickets/{id}returnează un tichet
PUT/tickets/{id}înlocuiește un tichet
DELETE/tickets/{id}șterge un tichet

Pentru POST și PUT, corpul cererii este JSON. Câmpul title este obligatoriu. Valorile acceptate sunt:

  • status: open, in_progress sau closed; valoarea implicită este open
  • priority: low, medium sau high; valoarea implicită este medium

Moduri de rulare​

VariabilăRol
USE_POSTGRES=falsefolosește stocarea în memorie; datele dispar la recrearea containerului
USE_POSTGRES=truefolosește PostgreSQL și necesită DATABASE_URL
PORTportul HTTP intern; implicit 8080

Mai întâi vom rula un singur container în modul in-memory. Ulterior, Docker Compose va porni API-ul și PostgreSQL împreună.

Structura repository-ului​

CaleRol
main.goconfigurează serverul HTTP și alege mecanismul de stocare
internal/ticket/conține modelul, validarea și endpoint-urile
internal/store/conține implementările in-memory și PostgreSQL
Dockerfiledescrie construirea imaginii aplicației
docker-compose.ymldescrie serviciile api și db
.dockerignoreexclude fișierele care nu trebuie trimise în contextul de build
.env.exampledocumentează variabilele configurabile
.github/workflows/ci.ymlautomatizează testarea și publicarea; îl vom discuta într-un laborator ulterior
informație

Nu modificăm sursele în acest laborator. Le inspectăm pentru a înțelege ce intră în imagine și cum se configurează aplicația.