API REST pour voter pour le joueur étoile du match et consulter les matchs/joueurs.
- Python 3.11+
- pip
- Docker (pour le déploiement)
- Cloner le projet :
git clone https://github.com/jyRby/canadian_api.git
cd canadien_api- Créer un environnement virtuel et installer les dépendances :
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
pip install -r requirements.txt- Initialiser la base de données (SQLite ou autre) :
flask db init
flask db migrate
flask db upgrade- Lancer le serveur Flask :
flask runL’API sera disponible sur http://127.0.0.1:5000.
| Endpoint | Méthode | Headers | Body / Params |
|---|---|---|---|
/users/register |
POST | None | JSON { "username": "", "password": "" } |
/users/login |
POST | None | JSON { "username": "", "password": "" } |
/players/ |
GET | None | None |
/games/ |
GET | None | None |
/votes/ |
POST | Authorization: Bearer <token> |
JSON { "game_id": 2025010015, "player_id": 12 } |
/votes/top |
GET | None | None |
/votes/ |
GET | Authorization: Bearer <token> |
None |
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
ENV FLASK_APP=app
ENV FLASK_RUN_HOST=0.0.0.0
ENV FLASK_RUN_PORT=5000
EXPOSE 5000
CMD ["flask", "run"]docker build -t canadien_api .
docker run -d -p 5000:5000 canadien_apiL’API sera accessible sur http://localhost:5000.
RapidAPI ne peut pas accéder à localhost. Utilise un tunnel public avec ngrok :
ngrok http 5000Tu obtiendras une URL publique (ex. https://abcd1234.ngrok.io).
- Connecte-toi à RapidAPI.
- Crée un nouveau projet/API.
- Mets l’URL de base de ton API (ngrok URL).
- Ajoute chaque endpoint avec la méthode, les headers et le corps.
- Teste les endpoints depuis RapidAPI.
- Publie l’API si nécessaire.
- Les champs
game_idetplayer_iddoivent être entiers pour POST/votes/. - Le token JWT est obligatoire pour
/votes/POST et GET. - Pour tester rapidement la partie vote, utilise le client Python fourni dans le projet.
- Les erreurs SQL détaillées sont loggées dans la console pour debug.
curl -X POST http://127.0.0.1:5000/users/register \
-H "Content-Type: application/json" \
-d '{"username": "alainFlouflou", "password": "motdepasse"}'curl -X POST http://127.0.0.1:5000/users/login \
-H "Content-Type: application/json" \
-d '{"username": "alainFlouflou", "password": "motdepasse"}'curl -X POST http://127.0.0.1:5000/votes/ \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"game_id": 2025010015, "player_id": 12}'curl -X GET http://127.0.0.1:5000/votes/ \
-H "Authorization: Bearer <token>"curl -X GET http://127.0.0.1:5000/votes/topMIT License