
node -v ou node --version // pour savoir la version de node.
npm -v ou npm --version // pour savoir la version de npm.

npm init  // pour créer le package du projet
npm install express  // pour créer le serveur etc..
npm install nodemon  // pour pouvoir redémarrer automatiquement le serveur.
npm install mysql  // pour utiliser MySQL.
npm install swagger-jsdoc swagger-ui-express body-parser  // pour utiliser swagger.
npm install jsonwebtoken  pour pouvoir créer les tokens.
npm install dotenv  // pour gérer les variables sensibles.

// Ouvre PowerShell en tant qu’administrateur, puis exécute une seule fois la commande suivante : Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
// Quand PowerShell vous demande la confirmation, alors tapez : O
node index.js  // pour executer le projet.
npm start  // pour démarrer le serveur.

------------- Comment exécuter le projet via l'invite de commande ? càd sans créer le projet dans un IDE ------------
1. Se placer dans le dossier du projet : cd D:\Realisation\Web\WebServicePartner
2. Installer les dépendances, Si le projet contient un fichier package.json : npm install
3. Executer le projet avec la commande : node index.js ou npm start

NB :  Pour Mysql8.x , il faut mettre à jour cet attribut afin que NodeJS puisse parfaitement se connecter à la BD
mysql -u root -p
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'succes';

------------- Test via l'invite de commande ------------
curl -u spadmin:admin http://localhost:3000/partner/
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNwYWRtaW4iLCJpYXQiOjE3NjIwMTM3ODEsImV4cCI6MTc2OTc4OTc4MX0.RXUhDJDgFX5XU4cJ6BPyKJ6HG8P91deAE87dRH1yd9Q" http://localhost:3000/api-docs/
curl -u spadmin:admin http://localhost:3000/api-docs/


------------- Test via le navigateur ------------
http://spadmin:admin@localhost:3000/partner/
http://spadmin:admin@localhost:3000/api-docs/


------------- Test via Postman ------------
// Basic Auth
Méthode : GET
URL : http://localhost:3000/partner/
Va dans l’onglet Authorization
Choisis Basic Auth
Mets : Username = spadmin et Password = admin

// Par Token
Body → raw → JSON
{
  "username": "spadmin",
  "password": "admin"
}
Méthode : GET
URL : http://localhost:3000/partner/
Onglet Headers → Ajouter :
Key : Authorization
Value : Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNwYWRtaW4iLCJpYXQiOjE3NjIwMTM3ODEsImV4cCI6MTc2OTc4OTc4MX0.RXUhDJDgFX5XU4cJ6BPyKJ6HG8P91deAE87dRH1yd9Q
