https://github.com/leosery/api_nosql--js
This project is an API made in JS and mongoDB for my undergraduate year 3 (2022/2023) for a course project.
https://github.com/leosery/api_nosql--js
api api-rest database js mongodb nosql web
Last synced: about 2 months ago
JSON representation
This project is an API made in JS and mongoDB for my undergraduate year 3 (2022/2023) for a course project.
- Host: GitHub
- URL: https://github.com/leosery/api_nosql--js
- Owner: LeoSery
- Created: 2023-04-25T13:48:44.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-25T19:02:37.000Z (about 3 years ago)
- Last Synced: 2025-07-26T09:05:23.970Z (11 months ago)
- Topics: api, api-rest, database, js, mongodb, nosql, web
- Language: JavaScript
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# Projet Final NoSQL - Léo Séry B3GDPROG
Ce projet contient une **API** réaliser pour le projet Final du module **NoSQL**. Vous trouverez ci dessous tout ce dont vous avez besoin pour la faire fonctionner.
## Contents :
- **Introduction** au projet.
- **Installer** l'API.
- **Configurer** l'API.
- **Tester** l'API.
## Introduction au projet :
Ce projet contient un **API en JS**. Cette API livré avec un **modele de base de donnée** pouvant contenir des personnages. Un fichier **`ExampleOfDatabaseContent.json`** contient un objet JSON avec des personnage de l'Univers _Marvel_, vous pouvez les utilisez lors de **tests de l'API**.
Un autre fichier nommé **`api.http`** peut vous aidez à réalisez les test de l'API, il contient toutes les requetes possible pour l'API.
Cette API dispo des fonctionalités de base pour faire un **CRUD**.
Vous pouvez **réaliser les actions suivantes** :
- Ajouter un personnage
- Ajouter plusieurs personnages en une requete
- Récupérer tous les personnages de la BDD
- Récupérer un personnage de la BDD via son ID
- Update les informations d'un personnage via son ID
- Supprimer un personnage via son ID
- Supprimer tous les personnages de la BDD
Cette API comporte aussi 2 autres features afin de pouvoir trier et rechercher un personnages via une requete. Vous pouvez :
- Recherche un personnage via :
- son Nom
- son Prénom
- son Alias
- Trier les personnages dans l'ordre croissant et décroissant via les critères suivants :
- son Nom
- son Prénom
- son Alias
## Installer l'API :
vous trouvez l'API dans le dossier **`SÉRY_LÉO_API_NOSQL\app`** de ce .zip. Vous pouvez aussi la télécharger sur [mon repo GitHub](https://github.com/LeoSery/API_NoSQL--JS).
Ou la clonner via les liens suivants :
```
git@github.com:LeoSery/API_NoSQL--JS.git
```
ou
```
https://github.com/LeoSery/API_NoSQL--JS.git
```
## Configurer l'API :
Une fois l'API récupérer, vous aller pouvoir la **configurer avant de l'utiliser**. Dans un terminal i**nstaller les node_modules** via la commande : **`npm install`**.
Ensuite **créer une base de donnée MongoDB** via **la ligne de commande** ou en utilisant l'application **`mongoDBCompass`**. Créer une connection vers cette base de donnée et **garder l'URL** et le **port d'accès** pour pouvoir les rentrer par la suite.
Dans le fichier **`.env`** du projet, dans le champ **`MONGO_URL`** renseigner **l'URL de votre base de donnée** suivit **du port** que vous avez enregistrer ci dessus et enfin le **nom de votre BDD**.
Comme ceci : **`MONGO_URL=mongodb://{YourDatabaseIP}:{YourDatabasePort}/{YourDatabaseName}`**
Toujours dans le fichier **`.env`**, dans le champ **`PORT`** renseigner le champs sur lequel l'API devra tourner.
## Tester l'API :
Pour **tester l'API**, vous pouvez utiliser le fichier **`api.http`** qui contient toutes les requetes necessaires pour tester l'API si vous avez l'extension nommé **`REST Client`** [disponible sur le store](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) de Visual Studio Code.
Sinon vous pouvez **tester l'API manuellement** en suivant les indications ci dessous :
**URL pour accéder a l'API** : `http://localhost:{YourDatabasePort}`.
### Ajouter un personnage :
Type de requete : **POST**
Route : _`/characters`_
Content :
```
{
"id": 1,
"first_name": "NewCharacterFirstName",
"last_name": "NewCharacterLastName",
"alias": "NewCharacterAlias",
"height": 100
}
```
### Ajouter plusieurs personnages :
Type de requete : **POST**
Route : _`/characters`_
Content :
```
[
{
"id": 1,
"first_name": "NewCharacterFirstName",
"last_name": "NewCharacterLastName",
"alias": "NewCharacterAlias",
"height": 100
},
{
"id": 2,
"first_name": "NewCharacterFirstName",
"last_name": "NewCharacterLastName",
"alias": "NewCharacterAlias",
"height": 100
}
]
```
### Récupérer tous les personnages :
Type de requete : **GET**
Route : _`/characters`_
Content : `None`
### Récupérer un personnage via son ID :
Type de requete : **POST**
Route : _`/characters/{ID}`_
Content : `None`
### Mettre a jour un personnage via son ID :
Type de requete : **PUT**
Route : _`/characters/{ID}`_
```
{
"first_name": "NewFirstName",
"last_name": "NewLastName",
"alias": "NewAlias",
"height": 100
}
```
### Supprimer un personnage via son ID :
Type de requete : **DELETE**
Route : _`/characters/{ID}`_
Content : `None`
### Supprimer tous les personnages :
Type de requete : **DELETE**
Route : _`/characters`_
Content : `None`
### Recherche un personnage via son Nom, Prénom ou Alias :
Type de requete : **GET**
Route : _`/characters/search/{SearchValue}`_
Content : `None`
### Trier les personnages suivant un critère et dans un ordre précis :
Type de requete : **GET**
Route : _`/characters/sort/{SortValue}/{SortOrder}`_
Content : `None`