b3073f1e77c0c5600617f7195f428652e4e5d8bb
API Anime Tracker
API de synchronisation pour l'extension Chrome Anime Tracker, permettant de synchroniser l'historique des animés sur plusieurs appareils.
Fonctionnalités
- ✅ Authentification JWT (inscription, connexion)
- ✅ Synchronisation des animés entre appareils
- ✅ CRUD complet pour les animés
- ✅ Endpoint de synchronisation en masse
- ✅ Base de données PostgreSQL (service externe)
Configuration
Variables d'environnement
Créez un fichier .env à partir de env.example :
cp env.example .env
Éditez .env et configurez :
SECRET_KEY: Clé secrète pour JWT (minimum 32 caractères, générer une clé aléatoire)DATABASE_URL: URL de connexion PostgreSQL (format:postgresql://user:password@host:port/database)
Exemple de configuration
SECRET_KEY=votre-cle-secrete-tres-longue-et-aleatoire-minimum-32-caracteres
DATABASE_URL=postgresql://username:password@postgres.holo795.fr:5432/anime_tracker
Installation avec Docker
1. Lancer avec Docker Compose
docker-compose up -d
L'API sera accessible sur https://anime-tracker.holo795.fr (ou le port configuré)
2. Vérifier le statut
docker-compose ps
docker-compose logs -f api
Développement local (sans Docker)
# Créer un environnement virtuel
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
# Installer les dépendances
pip install -r requirements.txt
# Lancer l'API
uvicorn main:app --reload --host 0.0.0.0 --port 8000
Documentation API
Une fois l'API lancée, accédez à :
- Swagger UI: https://anime-tracker.holo795.fr/docs
- ReDoc: https://anime-tracker.holo795.fr/redoc
Endpoints principaux
Authentification
-
POST /api/auth/register- Inscription{ "username": "mon_username", "email": "email@example.com", "password": "motdepasse123" } -
POST /api/auth/login- Connexion{ "email_or_username": "email@example.com", "password": "motdepasse123" } -
GET /api/auth/me- Informations utilisateur (nécessite authentification)
Animés
GET /api/animes- Liste des animés (nécessite authentification)POST /api/animes- Créer/mettre à jour un animé (nécessite authentification)PUT /api/animes/{anime_id}- Mettre à jour un animé (nécessite authentification)DELETE /api/animes/{anime_id}- Supprimer un animé (nécessite authentification)POST /api/animes/sync- Synchroniser plusieurs animés (nécessite authentification)
Santé
GET /api/health- Vérification de l'état
Production
Déploiement
- Configurez les variables d'environnement sur votre serveur
- Assurez-vous que PostgreSQL est accessible depuis le conteneur Docker
- Utilisez un reverse proxy (nginx) avec HTTPS
- Configurez les certificats SSL
Sécurité
- ✅ Utilisez une
SECRET_KEYforte et unique - ✅ Utilisez HTTPS en production
- ✅ Configurez CORS pour limiter les origines autorisées
- ✅ Utilisez un mot de passe fort pour PostgreSQL
- ✅ Limitez les connexions réseau à PostgreSQL
Exemple de configuration nginx
server {
listen 443 ssl;
server_name anime-tracker.holo795.fr;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Base de données
Création de la base de données PostgreSQL
CREATE DATABASE anime_tracker;
CREATE USER anime_user WITH PASSWORD 'votre_mot_de_passe';
GRANT ALL PRIVILEGES ON DATABASE anime_tracker TO anime_user;
Les tables seront créées automatiquement au premier démarrage de l'API.
Migration
Si vous devez migrer depuis SQLite vers PostgreSQL :
- Exportez les données depuis SQLite
- Importez-les dans PostgreSQL
- Mettez à jour
DATABASE_URLdans.env
Description
Languages
Python
97.1%
Dockerfile
2.9%