Aller au contenu principal

Quickstart (10 minutes)

Ce guide vous permettra d'avoir l'API MyTelevision fonctionnelle en moins de 10 minutes.

Prérequis

Avant de commencer, assurez-vous d'avoir installé :

Vérification :

node --version    # v20.x.x
npm --version # 10.x.x
docker --version # Docker version 2x.x.x

Vue d'ensemble du processus

Étape 1 : Cloner le repository

git clone https://github.com/XKS-MYTV4JS/mytelevision-restfullapijsv4.git
cd mytelevision-restfullapijsv4

Étape 2 : Installer les dépendances

npm install

Étape 3 : Configurer l'environnement

# Copier le fichier d'exemple
cp .env.example .env

Éditer .env avec les valeurs minimales :

# Base de données (utilise les valeurs Docker par défaut)
DATABASE_URL="postgresql://mytv:mytv_password@localhost:5432/mytv?schema=public"

# Redis (utilise les valeurs Docker par défaut)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=mytv_redis_password

# JWT (générer des secrets sécurisés, minimum 32 caractères)
JWT_SECRET="votre-secret-jwt-minimum-32-caracteres-ici"
JWT_REFRESH_SECRET="autre-secret-jwt-refresh-minimum-32-cars"
JWT_EXPIRATION=15m
JWT_REFRESH_EXPIRATION=7d

# Streaming (minimum 32 caractères)
STREAMING_SIGNING_SECRET=votre-secret-streaming-32-caracteres

Étape 4 : Démarrer les services Docker

# Démarrer PostgreSQL et Redis
npm run docker:up

# Vérifier que les conteneurs sont en cours d'exécution
docker ps

Vous devriez voir :

  • mytv-postgres (port 5432)
  • mytv-redis (port 6379)

Étape 5 : Initialiser la base de données

# Appliquer les migrations
npm run prisma:migrate:dev

# Générer le client Prisma
npm run prisma:generate

# (Optionnel) Seeder la base de données avec des données de test
npm run prisma:seed

Étape 6 : Démarrer l'API

# Mode développement avec hot-reload
npm run start:dev

L'API démarre sur http://localhost:3052 (environnement de développement local).

Vérification

Health Check

curl http://localhost:3052/health

Réponse attendue :

{
"status": "ok",
"timestamp": "2025-01-15T10:30:00.000Z"
}

Documentation Swagger

Ouvrez dans votre navigateur : http://localhost:3052/api/docs

Première requête API

# Liste des films (sans authentification)
curl http://localhost:3052/api/v2/movies

# Avec pagination
curl "http://localhost:3052/api/v2/movies?page=1&limit=10"

# Avec localisation anglaise
curl -H "Accept-Language: en-US" http://localhost:3052/api/v2/movies

Authentification rapide

Créer un compte

curl -X POST http://localhost:3052/api/v2/auth/register \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"password": "Password123!",
"firstName": "Test",
"lastName": "User"
}'

Se connecter

curl -X POST http://localhost:3052/api/v2/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"password": "Password123!"
}'

Réponse :

{
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"refreshToken": "eyJhbGciOiJIUzI1NiIs...",
"expiresIn": 900
}

Utiliser le token

curl http://localhost:3052/api/v2/auth/me \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Commandes utiles

# Arrêter l'API
Ctrl+C

# Arrêter les conteneurs Docker
npm run docker:down

# Voir les logs Docker
npm run docker:logs

# Ouvrir Prisma Studio (GUI base de données)
npm run prisma:studio

# Exécuter les tests
npm run test

# Vérifier le linting
npm run lint

URLs des environnements

EnvironnementURLPort
Productionhttps://api.mytelevision.app3050
Staginghttps://staging-api.mytelevision.app3051
Développementhttps://dev-api.mytelevision.app3052

Prochaines étapes