Dans le cadre du cours de projets de fin d'études, j'ai créé une boutique en ligne avec le framework Vue.Js ainsi qu'une REST API en PHP et MySQL pour communiquer avec celle-ci. Le tout a été réalisé en moins de 7 semaines. Dans les deux cas, je ne connaissais pas le framework Vue.Js ainsi qu'une REST API.
Si vous voulez utiliser cette API pour quelconque raison, voici son fonctionnement.
Le fichier bdd-boutique.sql contient le script qui créera votre base de données. Il suffit de l'insérer dans PhpMyAdmin, ou autres logiciels similaires.
Dans le dossier config se trouve la classe Database. C'est grâce à cette classe que l'API réussit à communiquer avec la base de données.
Les modifications à apporter à ce fichier:
private $sHote = "localhost"; // Adresse IP du serveur MySQL
private $sNomBDD = "boutique"; // Nom de la base de données
private $sUsername = "root"; // Nom d'utilisateur du serveur MySQL
private $sMotDePasse = ""; // Mot de passe de l'utilisateur`
Ce n'est pas plus compliqué que ça! Tout est prêt à être utilisé.
L'API retourne du JSON peu importe si la requête contient une erreur.
Pour effectuer une requête, voici le structure:
http(s):// URL_OU_API_EST_HEBERGEE / DOSSIER_MENANT_VERS_API / LA_TABLE_DÉSIRÉE / TYPE_DE_REQUÊTE.php
Note : Les noms des classes sont le même que celle des tables de la base de données.
Exemple :
http://localhost:8080/boutique/api/produits/rechercherTous.php
- RechercherTous - Recherche toutes les entrées de la table
- RechercherUn - Recherche un élément de la table en particulier
- Ajouter - Ajouter un élément dans la table
- Modifier - Modifier un élément dans la table
- Supprimer - Supprimer un élément dans la table
- RechercherTousPar... - Rechercher certain éléments en fonction de critères spéficiques (Applicable seulement aux classes Produit, ImgProduit et contenuPanier)
Aucun paramètre
Méthode | Clé | Valeur |
---|---|---|
GET | id [Nom de la classe] | int |
Exemple :
http://localhost:8080/boutique/api/produits/rechercherUn.php?idProduit=1
Toutes les valeurs doivent être passées en méthode POST à l'aide d'un formulaire HTML ou d'une requête AJAX.
Méthode | Clé | Valeur |
---|---|---|
POST | Propriétés de la classe |
Toutes les valeurs doivent être passées en méthode POST à l'aide d'un formulaire HTML ou d'une requête AJAX.
Méthode | Clé | Valeur |
---|---|---|
POST | Propriétés de la classe |
Méthode | Clé | Valeur |
---|---|---|
GET | id [Nom de la classe] | int |
Exemple :
http://localhost:8080/boutique/api/produits/supprimer.php?idProduit=1
Méthode | Clé | Valeur |
---|---|---|
GET | iNo [Nom] | int |
Exemple :
http://localhost:8080/boutique/api/produits/rechercherTousParPanier.php?iNoPanier=1
Voici les listes des classes disponibles.
La classe adresse contient l'adresse de l'utilisateur, l'adresse de facturation d'une commande ainsi que l'adresse d'expédition d'une commande
idAdresse // id de l'adresse
sRue // Numéro civique et nom de la rue
sVille // Ville
sPays // Pays
sProvince // Province
sCodePostal // Code postal
- Ajouter
- Modifier
- Supprimer
- RechercherTous
- RechercherUn
La classe catégorie contient les catégories de produits à afficher sur le site
idCategorie // id de la catégorie
sNomCategorie // Nom de la catégorie
sUrlImg // Nom du fichier de l'image représentant la catégorie
- RechercherTous
- RechercherUn
La classe commande contient les commandes effectuées par un utilisateur
idCommande // id de la commande
sNumeroCommande // Numéro de la commande
iNoUtilisateur // l'id de l'utilisateur
fFraisLivraison // Frais de livraison
fTPS // Taxes provincial (1.05)
fTVQ // Taxes provincial (1.0974)
sEtatCommande // État de la commande
sTrackingNumCommande // Tracking de la commande par la compagnie de livraison
iNoAdresseFacturation // Adresse de facturation
iNoAdresseExpedition// Adresse d'expédition
- Ajouter
- Modifier
- RechercherTous
- RechercherUn
La classe ContenuCommande contient les produits ajoutés à une commande par un utilisateur
idContenuCommande // Id du contenu de la commande
iQteProduitCommande // Quantité de produit
fPrixCommande // Prix final du produit
iNoCommande // Id de la commande
iNoProduit // Id du produit
- Ajouter
- Modifier
- Supprimer
- RechercherTous
- RechercherUn
La classe ContenuPanier contient les produits ajoutés à un panier par un utilisateur
idContenuPanier // Id du contenu du panier
iQteProduit // Quantité de produit
iNoProduit // Id du produit
iNoPanier // Id du panier
- Ajouter
- Modifier
- Supprimer
- RechercherTous
- RechercherUn
- RechercherTousParPanier
La classe ImgProduit contient les images de produit
idImgProduit // Id de l'image du produit
sUrlImg // Nom du fichier de l'image
iNoProduit // Id du produit
- RechercherTous
- RechercherUn
- RechercherTousParProduit
La classe Panier contient les paniers temporaires d'un utilisateur anonyme
idPanier // Id du panier
sNumPanier // Numéro unique du panier
sDateModification // Date de modification du panier
- Ajouter
- Modifier
- Supprimer
- RechercherTous
- RechercherUn
La classe Produit contient les produits en vente dans la boutique
idProduit // Id du produit
sSKUProduit // SKU du produit
sNomProduit // Nom du produit
sMarque // Marque du produit
fPrixProduit // Prix du produit sans taxes
fPrixSolde // Prix du produit en solde sans taxes
sDescCourteProduit // Description courte du produit
sDescLongProduit // Description longue du produit
sCouleur // Couleurs disponibles (JSON)
sCapacite // Capacités disponibles (JSON)
iNoCategorie // Id de la catégorie du produit
sDateAjout // Date d'ajout du produit
bAfficherProduit // Afficher le produit dans la boutique?
- Ajouter
- Modifier
- Supprimer
- RechercherTous
- RechercherUn
- RechercherTousParCateg
La classe Utilisateur contient les utilisateurs qui sont inscrits pour faire des achats dans la boutique
idUtilisateur // Id de l'utilisateur
sCourriel // Courriel de l'utilisateur
sMotDePasse // Mot de passe de l'utilisateur
sNumTelephone // Numéro de téléphone de l'utilisateur
sPrenomUtilisateur // Prénom de l'utilisateur
sNomUtilisateur // Nom de famille de l'utilisateur
sDateInscription // Date d'inscription de l'utilisateur
iNoAdresse // ID de l'adresse de l'utilisateur
- Ajouter
- Modifier
- Supprimer
- RechercherTous
- RechercherUn