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
| Environnement | URL | Port |
|---|---|---|
| Production | https://api.mytelevision.app | 3050 |
| Staging | https://staging-api.mytelevision.app | 3051 |
| Développement | https://dev-api.mytelevision.app | 3052 |
Prochaines étapes
- Installation complète -- Guide d'installation détaillé par OS
- Configuration avancée -- Toutes les variables d'environnement