Skip to content

Latest commit

 

History

History
352 lines (285 loc) · 13.2 KB

File metadata and controls

352 lines (285 loc) · 13.2 KB

Language Stars Contributors

Filmy

API de Filmy

Auteurs

Maréchal Antoine Lemont Gaétan

Contributors

Prérequis

  • Git: Téléchargez et installez Git en suivant les instructions de votre OS. Pour vérifier que Git a été installé avec succès, exécutez git --version.
  • Docker: Téléchargez et installez Docker en suivant les instructions de votre OS. Pour vérifier que Docker a été installé avec succès, exécutez docker --version.

Lancer localement

  1. Cloner le dépôt Filmy-api :
git clone https://github.com/Ollopic/Filmy-api  
  1. Vous pouvez lancer l'api en faisant simplement une de ces deux commandes :
make init
docker compose up -d

L'API est alors accessible à l'adresse suivante : http://localhost:8002

Un utilisateur par défaut est créé :

  • email : admin@example.com
  • mot de passe : admin

Déploiement global

Pour lancer l'ensemble du projet, y compris l'app et l'API, un fichier Docker Compose est disponible dans le projet. Vous pouvez le retrouver ici : compose.yml Un compte The Movie Database est nécessaire pour lancer l'API. Afin de pouvoir tester l'app directement, un compte spécial a été fait uniquement pour cette utilisation. Le token est déjà renseigné dans les variables dans le compose. Vous retrouverez également le Dockerfile ayant servi a build l'image de l'API ici : Dockerfile Plus d'informations sont affichées dans le README de la partie Docker.

Api Reference

Collections

Récupérer toutes les collections

GET /collection
Nom Type Optionnel Description
- - - -

Créer une nouvelle collection

POST /collection
Nom Type Optionnel Description
name string Non Nom de la collection.
picture string Oui URL de l'image associée à la collection.

Mettre à jour une collection

PATCH /collection/<identifier>
Nom Type Optionnel Description
name string Oui Nouveau nom de la collection.
picture string Oui Nouvelle URL de l'image associée.

Supprimer une collection

DELETE /collection/<identifier>
Nom Type Optionnel Description
- - - -

Récupérer une collection spécifique

GET /collection/<identifier>
Nom Type Optionnel Description
- - - -

Ajouter un film à une collection

POST /collection/<identifier>
Nom Type Optionnel Description
film_id string Non Identifiant du film à ajouter.
state string Non État du film (ex. "Vu", "À voir").
borrowed bool Oui Statut d'emprunt du film.
borrowed_at string Oui Date d'emprunt du film (si applicable).
borrowed_by string Oui Emprunteur du film (si applicable).
favorite bool Oui Marquer le film comme favori.

Mettre à jour un film dans une collection

PATCH /collection/<collection_id>/<film_id>
Nom Type Optionnel Description
state string Oui Nouvel état du film.
borrowed bool Oui Mise à jour du statut d'emprunt.
favorite bool Oui Mise à jour du statut favori.

Supprimer un film d'une collection

DELETE /collection/<collection_id>/<film_id>
Nom Type Optionnel Description
- - - -

Récupérer la wishlist

GET /collection/wishlist
Nom Type Optionnel Description
- - - -

Ajouter un film à la wishlist

POST /collection/wishlist
Nom Type Optionnel Description
film_id string Non Identifiant du film à ajouter.

Transférer un film de la wishlist vers une collection

PATCH /collection/wishlist
Nom Type Optionnel Description
film_id string Non Identifiant du film à transférer.
state string Non État du film après transfert.
collection_id int Non Identifiant de la collection cible.

Authentification

Créer un jeton d'authentification

POST /token
Nom Type Optionnel Description
mail string Non Adresse email de l'utilisateur.
password string Non Mot de passe de l'utilisateur.

Films

Récupérer les films populaires

GET /movies/popular
Nom Type Optionnel Description
- - - -

Récupérer les films tendances

GET /movies/trending
Nom Type Optionnel Description
- - - -

Récupérer les films les mieux notés

GET /movies/top_rated
Nom Type Optionnel Description
- - - -

Récupérer les films à venir

GET /movies/upcoming
Nom Type Optionnel Description
- - - -

Récupérer les films actuellement en salle

GET /movies/now_playing
Nom Type Optionnel Description
- - - -

Rechercher un film par titre

GET /movies
Nom Type Optionnel Description
title string Non Titre du film recherché.
page int Oui Numéro de la page à afficher.

Récupérer les détails d'un film

GET /movies/<identifier>
Nom Type Optionnel Description
identifier int Non Identifiant TMDB du film.

Récupérer les crédits d'un film

GET /movies/<identifier>/credits
Nom Type Optionnel Description
identifier int Non Identifiant TMDB du film.

Récupérer la liste des genres de films

GET /movies/genres
Nom Type Optionnel Description
- - - -

Découvrir des films avec des filtres

GET /movies/discover
Nom Type Optionnel Description
with_genres string Oui Liste des genres (séparés par des virgules).
sort_by string Oui Critère de tri.
release_date.gte string Oui Date de sortie minimum (format AAAA-MM-JJ).
release_date.lte string Oui Date de sortie maximum (format AAAA-MM-JJ).
with_runtime.gte int Oui Durée minimum en minutes.
with_runtime.lte int Oui Durée maximum en minutes.
page int Oui Numéro de la page à afficher.

Acteurs

Rechercher une personne par nom

GET /person
Nom Type Optionnel Description
name string Non Nom de la personne recherchée.
page int Oui Numéro de la page à afficher.

Récupérer les détails d'une personne

GET /person/<identifier>
Nom Type Optionnel Description
identifier int Non Identifiant TMDB de la personne.

Récupérer les personnes populaires

GET /person/popular
Nom Type Optionnel Description
page int Oui Numéro de la page à afficher.

Utilisateurs

Récupérer les détails de l'utilisateur connecté

GET /user/me
Nom Type Optionnel Description
Authorization string non Token JWT dans l'en-tête de la requête

Récupérer les détails d'un utilisateur par son ID

GET /user/<identifier>
Nom Type Optionnel Description
identifier int non ID de l'utilisateur à récupérer
Authorization string non Token JWT dans l'en-tête de la requête

Créer un nouvel utilisateur

POST /user
Nom Type Optionnel Description
username string non Nom d'utilisateur unique
mail string non Adresse email unique
password string non Mot de passe de l'utilisateur
is_admin bool oui Indique si l'utilisateur est admin

Mettre à jour les détails de l'utilisateur

PATCH /user
PATCH /user/<identifier>
Nom Type Optionnel Description
identifier int oui ID de l'utilisateur à mettre à jour
username string oui Nouveau nom d'utilisateur
mail string oui Nouvelle adresse email
password string oui Nouveau mot de passe
is_admin bool oui Indique si l'utilisateur devient admin
profile_image string oui URL de la nouvelle image de profil
Authorization string non Token JWT dans l'en-tête de la requête

Supprimer un utilisateur

DELETE /user/<identifier>
Nom Type Optionnel Description
identifier int non ID de l'utilisateur à supprimer
Authorization string non Token JWT dans l'en-tête de la requête