Skip to content

IliesBossuyt/API-Film

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

API Film (TP PHP REST)

API REST en PHP pour récupérer des films depuis TMDB et gérer une liste de favoris.

Prérequis

  • PHP >= 8.0
  • Une clé API TMDB
  • Postman (ou curl)

Installation

  1. Cloner le projet puis entrer dans le dossier :
git clone https://github.com/IliesBossuyt/API-Film.git
cd API-Film/
  1. Créer le fichier d'environnement :
cp api-films/.env.example api-films/.env
  1. Éditer api-films/.env et renseigner :
TMDB_API_KEY=votre_cle_tmdb
  1. Lancer le serveur :
php -S localhost:8000 -t api-films

Base URL locale : http://localhost:8000

Structure du projet

api-films/
├── index.php
├── config/
│   └── config.php
├── services/
│   └── TMDBService.php
├── controllers/
│   ├── MovieController.php
│   └── FavoriteController.php
└── storage/
    └── favorites.json

Routes disponibles

1) GET /movies?type={type}

Récupère les films TMDB par type.

Types acceptés :

  • popular
  • top_rated
  • upcoming
  • now_playing

Exemple :

curl "http://localhost:8000/movies?type=popular"

Réponses possibles :

  • 200 OK : liste TMDB
  • 400 Bad Request : type manquant/invalide
  • 500 Server Error : erreur serveur ou TMDB

2) GET /movies/{type}

Alternative sans query param.

Exemple :

curl "http://localhost:8000/movies/top_rated"

3) POST /favorites

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 favoris
  • 400 Bad Request : JSON invalide ou movie_id invalide
  • 500 Server Error : erreur serveur

4) GET /favorites

Retourne la liste des favoris stockés.

Exemple :

curl "http://localhost:8000/favorites"

5) DELETE /favorites/{movie_id}

Supprime un film des favoris.

Exemple :

curl -X DELETE "http://localhost:8000/favorites/550"

Reponses possibles :

  • 200 OK : favori supprime
  • 404 Not Found : favori introuvable
  • 500 Server Error : erreur serveur

Gestion des erreurs

L'API retourne toujours du JSON avec un code HTTP adapté :

  • 200 OK
  • 201 Created
  • 400 Bad Request
  • 404 Not Found
  • 500 Internal Server Error

Tests Postman

  1. GET /movies?type=popular -> attendu 200 alt text
  2. GET /movies?type=invalid -> attendu 400 alt text
  3. GET /movies/top_rated -> attendu 200 alt text
  4. POST /favorites avec {"movie_id": 550} -> attendu 201 alt text
  5. POST /favorites avec {"movie_id": 550} (2e fois) -> attendu 200 alt text
  6. GET /favorites -> attendu 200 + présence de movie_id alt text
  7. POST /favorites avec body invalide -> attendu 400 alt text
  8. DELETE /favorites/550 -> attendu 200 (ou 404 si deja supprime) alt text

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages