Skip to content

Repository files navigation

🍕 Pizza Cap API

Bienvenue dans l’API du projet Pizza Cap, réalisée dans le cadre du projet web de 4ᵉ année à l’ISEN. Ce backend, développé en Python avec Flask, alimente un site web vitrine dédié aux pizzas.

L’objectif est de fournir une API RESTful permettant d’interagir avec les données du site Pizza Cap : pizzas, descriptions, prix, images, et informations sur les restaurants.

🎯 Objectifs

  • Concevoir une architecture API RESTful propre et modulaire
  • Implémenter des endpoints cohérents et testables
  • Relier une base de données à un front web dynamique
  • Gérer des ressources médias (images) depuis une API Flask

🧪 Technologies utilisées

  • Python 3.12
  • Flask
  • Flask-SQLAlchemy
  • Flask-RESTful
  • Flask-Migrate
  • Marshmallow
  • SQLite (pour l’environnement local)

🚀 Lancer le projet localement

Cloner le repo

git clone https://github.com//pizza-cap-api.git
cd pizza-cap-api

Installer les dépendances

pip install -r requirements.txt

Initialiser la base de données

flask db init
flask db migrate -m "Initial migration"
flask db upgrade

(Optionnel) Charger les données depuis les fichiers JSON

python app.py   # Les données de test sont insérées au premier lancement

Lancer le serveur

python app.py

📂 Structure du projet

pizza-cap-api/
├── app.py               # Point d’entrée principal
├── models.py            # Modèles SQLAlchemy
├── routes.py            # Définition des routes Flask
├── pizza_data.json      # Données d’exemple pour les pizzas
├── restaurant_data.json # Données d’exemple pour les restaurants
├── images/              # Contient les fichiers image des pizzas
└── README.md

📡 Endpoints disponibles

🔎 Pizzas

Méthode Endpoint Description
GET /pizzas Récupère toutes les pizzas
GET /pizzas/<id> Récupère une pizza spécifique

🍴 Restaurants

Méthode Endpoint Description
GET /restaurants Liste les restaurants partenaires

🧾 Exemple de réponse JSON

 json {
  "id": 1,
  "name": "Margherita",
  "description": "Classic pizza with tomato sauce, mozzarella, and fresh basil.",
  "ingredients": "Tomato sauce, Mozzarella, Fresh basil",
  "price": 8.5,
  "features": "Vegetarian, Gluten-free option",
  "image_url": "http://localhost:5000/images/margherita.jpeg",
  "tag": "popular"
} 

📌 Possibles améliorations futures

  • Filtrage et recherche de pizzas
  • Ajout de pizzas via POST (interface admin)
  • Authentification utilisateur
  • Pagination et tri

About

API pour projet PizzaCap

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages