API REST en PHP pour récupérer des films depuis TMDB et gérer une liste de favoris.
- PHP >= 8.0
- Une clé API TMDB
- Postman (ou
curl)
- Cloner le projet puis entrer dans le dossier :
git clone https://github.com/IliesBossuyt/API-Film.gitcd API-Film/- Créer le fichier d'environnement :
cp api-films/.env.example api-films/.env- Éditer
api-films/.envet renseigner :
TMDB_API_KEY=votre_cle_tmdb- Lancer le serveur :
php -S localhost:8000 -t api-filmsBase URL locale : http://localhost:8000
api-films/
├── index.php
├── config/
│ └── config.php
├── services/
│ └── TMDBService.php
├── controllers/
│ ├── MovieController.php
│ └── FavoriteController.php
└── storage/
└── favorites.json
Récupère les films TMDB par type.
Types acceptés :
populartop_ratedupcomingnow_playing
Exemple :
curl "http://localhost:8000/movies?type=popular"Réponses possibles :
200 OK: liste TMDB400 Bad Request: type manquant/invalide500 Server Error: erreur serveur ou TMDB
Alternative sans query param.
Exemple :
curl "http://localhost:8000/movies/top_rated"Ajoute un film en favori (stockage JSON local).
Body JSON attendu :
{
"movie_id": 123
}Exemple :
curl -X POST "http://localhost:8000/favorites" \
-H "Content-Type: application/json" \
-d '{"movie_id":123}'Réponses possibles :
201 Created: favori ajouté200 OK: déjà en favoris400 Bad Request: JSON invalide oumovie_idinvalide500 Server Error: erreur serveur
Retourne la liste des favoris stockés.
Exemple :
curl "http://localhost:8000/favorites"Supprime un film des favoris.
Exemple :
curl -X DELETE "http://localhost:8000/favorites/550"Reponses possibles :
200 OK: favori supprime404 Not Found: favori introuvable500 Server Error: erreur serveur
L'API retourne toujours du JSON avec un code HTTP adapté :
200 OK201 Created400 Bad Request404 Not Found500 Internal Server Error
GET /movies?type=popular-> attendu200
GET /movies?type=invalid-> attendu400
GET /movies/top_rated-> attendu200
POST /favoritesavec{"movie_id": 550}-> attendu201
POST /favoritesavec{"movie_id": 550}(2e fois) -> attendu200
GET /favorites-> attendu200+ présence demovie_id
POST /favoritesavec body invalide -> attendu400
DELETE /favorites/550-> attendu200(ou404si deja supprime)