Descriere Server
Datele de conectare
HOST: 63.32.125.183 PORT: 8081
Mod de funcționare
Serverul va permite efectuarea următoarelor acțiuni:
4.1 Autentificare admin
Ruta de acces:
POST /api/v1/tema/admin/login
Tip payload:
application/json
Payload:
{
"username": String,
"password": String
}
Răspuns:
🍪 Întoarce cookie de sesiune.
Erori tratate:
👎 Credențialele nu se potrivesc.
👎 Reautentificare când deja logat.
4.2 Adăugarea unui utilizator normal
Ruta de acces:
POST /api/v1/tema/admin/users
Tip payload:
application/json
Payload:
{
"username": String,
"password": String
}
Observații:
❗ Trebuie să demonstrați că aveți rol de admin.
❗ Userul aparține adminului curent.
Erori tratate:
👎 Lipsă rol admin.
👎 Informații incomplete/incorecte.
4.3 Vizualizare utilizatori normali
Ruta de acces:
GET /api/v1/tema/admin/users
Observații:
❗ Trebuie să demonstrați că aveți rol de admin.
Răspuns:
{
"users": [
{
"id": Number,
"password": String,
"username": String
}
]
}
Erori tratate:
👎 Lipsă permisiuni admin.
4.4 Ștergerea unui utilizator
Ruta de acces:
DELETE /api/v1/tema/admin/users/:username
e.g: /api/v1/tema/admin/users/user123
Observații:
❗ Necesită rol de admin.
Erori tratate:
👎 Lipsă rol admin.
👎 Username invalid.
4.5 Logout admin
Ruta de acces:
GET /api/v1/tema/admin/logout
Observații:
❗ Necesită autentificare.
Erori tratate:
👎 Neautentificat.
4.6 Autentificare utilizator
Ruta de acces:
POST /api/v1/tema/user/login
Tip payload:
application/json
Payload:
{
"admin_username": String,
"username": String,
"password": String
}
Răspuns:
🍪 Trebuie să demonstraţi că sunteţi autentificaţi!
Erori tratate:
👎 Credențialele nu se potrivesc.
👎 Reautentificare.
4.7 Cerere acces library
Ruta de acces:
GET /api/v1/tema/library/access
Observații:
❗ Necesită autentificare.
Răspuns:
🍪 Trebuie să demonstraţi că sunteţi autentificaţi!
Erori tratate:
👎 Neautentificat.
4.8 Vizualizare toate filmele
Ruta de acces:
GET /api/v1/tema/library/movies
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
Răspuns:
[
{
"id": Number,
"title": String
}
]
Erori tratate:
👎 Fără acces library.
4.9 Vizualizare detalii film
Ruta de acces:
GET /api/v1/tema/library/movies/:movieId
e.g: /api/v1/tema/library/movies/123
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
Răspuns:
{
"id": Number,
"title": String,
"year": Number,
"description": String,
"rating": Number
}
Erori tratate:
👎 Fără acces library.
👎 ID invalid.
4.10 Adăugare film
Ruta de acces:
POST /api/v1/tema/library/movies
Tip payload:
application/json
Payload:
{
"title": String,
"year": Number,
"description": String,
"rating": Number
}
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
Erori tratate:
👎 Fără acces library.
👎 Date invalide/incomplete.
4.11 Actualizare film
Ruta de acces:
PUT /api/v1/tema/library/movies/:movieId
Tip payload:
application/json
Payload:
{
"title": String,
"year": Number,
"description": String,
"rating": Number
}
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
Erori tratate:
👎 Fără acces library.
👎 ID invalid.
👎 Date invalide/incomplete.
4.12 Ștergere film
Ruta de acces:
DELETE /api/v1/tema/library/movies/:movieId
e.g: /api/v1/tema/library/movies/123
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
Erori tratate:
👎 Fără acces library.
👎 ID invalid.
4.13 Vizualizare colecții
Ruta de acces:
GET /api/v1/tema/library/collections
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
Răspuns:
[
{
"id": Number,
"title": String,
"owner": String,
"movies": [
{
"id": Number,
"title": String
}
]
}
]
Erori tratate:
👎 Fără acces library.
4.14 Vizualizare detalii colecție
Ruta de acces:
GET /api/v1/tema/library/collections/:collectionId
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
e.g: /api/v1/tema/library/collections/123
Răspuns:
{
"id": Number,
"title": String,
"owner": String,
"movies": [
{
"id": Number,
"title": String
}
]
}
Erori tratate:
👎 Fără acces library.
👎 ID invalid.
4.15 Adăugare colecție
Ruta de acces:
POST /api/v1/tema/library/collections
Tip payload:
application/json
Payload:
{
"title": String
}
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
❗ Owner este utilizatorul curent.
Erori tratate:
👎 Fără acces library.
👎 Date invalide/incomplete.
4.16 Ștergere colecție
Ruta de acces:
DELETE /api/v1/tema/library/collections/:collectionId
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
❗ Trebuie să fiți owner.
Erori tratate:
👎 Fără acces library.
👎 Nu sunteți owner.
👎 ID invalid.
4.17 Adăugare film în colecție
Ruta de acces:
POST /api/v1/tema/library/collections/:collectionId/movies
Tip payload:
{
"id": Number
}
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
❗ Trebuie să fiți owner.
Erori tratate:
👎 Fără acces library.
👎 Nu sunteți owner.
👎 Date invalide/incomplete.
4.18 Ștergere film din colecție
Ruta de acces:
DELETE /api/v1/tema/library/collections/:collectionId/movies/:movieId
e.g: /api/v1/tema/library/collections/5/movies/123
Observații:
🍪 Trebuie să demonstraţi că aveţi acces la library! (JWT token)
❗Trebuie să fiți owner.
❗ Filmul trebuie să existe în colecție.
Erori tratate:
👎 Fără acces library.
👎 Nu sunteți owner.
👎 ID invalid.
4.19 Logout utilizator
Ruta de acces:
GET /api/v1/tema/user/logout
Observații:
❗ Necesită autentificare.
Erori tratate:
👎 Neautentificat.
Observație
‼️ Toate functionalitatile mentionate pentru server sunt testate de checker-ul oferit, dar nu sunt incluse toate cazurile de testare pentru corner case-uri.
Testare server
Pentru a interacţiona neprogramatic cu serverul, puteţi folosi utilitare ce simulează clienţii HTTP, precum Postman [1], Insomnia [2] sau chiar clienţi scrişi de mână în alte limbaje de programare.