API REST affichant une liste d'articles pour préparer sa liste de courses.
Ce projet me permet de pratiquer diverses notions apprises en cours (code et organisation d'un projet). Il est en cours de développement.
Il a aussi pour vocation d'être accessible à d'autres personnes qui veulent découvrir les API avec Node.js et express : des commentaires aident à comprendre ce qui est mis en place
Table des matières
Pour pouvoir installer l'API vous devez au préalable avec cette stack installée en global sur votre machine :
- NodeJS (v16 ou supérieure)
- PostgreSQL (v12 ou supérieure)
- Sqitch (v1 ou supérieure)
- Git
comment installer l'app localement ?
Vous pouvez cloner le repo en cliquant sur le bouton "code" en haut à droite de la page d'accueil du repo et choisir la méthode que vous préférez (HTTPS, SSH ou GithubCLI).
Sur votre terminal exécutez la commande suivante :
git clone <url du dépôt>
Dans le dossier local, installez les dépendances NPM
npm install
Enfin, créez une base de données PostgreSQL, votre fichier .env
et sqitch.conf
(des fichiers d'exemple sont fournis à la racine du projet) et déployez le projet sqitch.
createdb <nom de votre database>
sqitch deploy
💡 Configurez PostgreSQL (ou fournir les variables d'environnement nécessaires à la connexion) pour que les commandes creatdb
et sqitch
puissent s'éxécuter correctement.
Lancez le serveur avec la commande
npm run start
Vous pouvez accéder aux données avec le fichier api.http
qui se trouve à la racine du projet.
💡 La documentation d'API est disponible sur '/api-docs' (une fois le serveur lancé bien sûr ;)
Accès en local (voir installation).
- Articles (item) :
- accéder à la liste des articles
- filtrer la liste des articles en fonction de la marque, le rayon ou la Catégorie perso
- accéder à un article en particulier
- créer un article
- Catégories (category) :
- accéder à la liste des catégories
- accéder à une catégorie en particulier
- créer une catégorie
- Rayons (shelf) :
- accéder à la liste des rayons
- accéder à une rayon en particulier
- créer une rayon
- marques (brand) :
- accéder à la liste des marques
- accéder à une marque en particulier
- créer une marque
- Documentation
- Modification d'articles, catégories, marques et rayons,
- Suppression d'articles, catégories, marques et rayons.
Une catégorie représente la façon dont un utilisateur classe un article (dans sa tête ou dans son cellier), ne correspond pas forcément aux rayons du magasin. Donnée facultative.
Un rayon représente le rayon du magasin où on peut trouver cet article. Donnée facultative.
La marque permet de préciser la marque voulue pour un article. Donnée facultative.
Un fichier de seed avec quelques données (rien de bien équilibré... 😅) est dispo dans le dossier data.