Ce repo a été créé dans le cadre de la formation "Développeur .Net" avec Simplon & M2I en novembre 2023.
Ce repo contient le code source de l'API de notre médiathèque "Bok".
Notre API permet :
-
Gérer les employés (http://localhost:4000/api#/Employees)
-
Gérer les emprunteurs (http://localhost:4000/api#/Borrowers)
-
Gérer les livres (http://localhost:4000/api#/Books)
-
Gérer les auteurs (http://localhost:4000/api#/Authors)
-
Gérer les emprunts (http://localhost:4000/api#/Borrows)
-
Rechercher des livres par mots-clés (http://localhost:4000/api#/Books/BooksController_findByKeywords)
-
Lister les livres d'un auteur (http://localhost:4000/api#/Books/BooksController_getByAuthorUUID)
Notre API est consommable via HTTP (ou HTTPS si un certificat SSL est installé), en utilisant les verbes HTTP adéquoits (GET, POST, PATCH, DELETE).
Cloner le projet :
$ git clone git@github.com:Simplon-hdf/Bok.git
Installer les dépendances (via npm, pnpm, etc.) :
$ npm install
Paramétrer l'accès à la base de données définissant la variable d'environnement DATABASE_URL en indiquant la chaîne de connexion à la base de données.
Il est possible de créer un fichier .env à la racine du projet contenant par exemple (pour PostgreSQL) :
DATABASE_URL="postgresql://user:password@host/database"Note
Le rôle associé à l'utiliseur de connexion doit disposer de la clause CREATEDB (https://docs.postgresql.fr/10/sql-createrole.html). Exemple : CREATE USER bok WITH CREATEDB ENCRYPTED PASSWORD 'xxxxxxxxxx';
Pour savoir comment créer une chaîne de connexion : Documentation de Prisma concernant les chaînes de connexion (PostgreSQL, MySQL, SQLite, SQL Server, MongoDB et CockroachDB)
Installer la base de données en exécutant les migrations :
$ npx prisma migrate dev
Exécuter le serveur :
$ npm run start
Alternative: pour exécuter le serveur en mode "watch" (surveillance des modifications apportées aux fichiers et redémarrage du serveur automatique), pratique en mode développement :
$ npm run start:dev
La documentation complète de l'API (générée par Swagger) est disponible à cette adresse :
http://localhost:4000/api
Note
Le serveur de l'API doit être démarré pour pouvoir accéder à la documentation
