Petite API nodejs en Es6 avec Prisma et l'infrastructure Express
- Os : Linux pop!_OS 21.04
- Babel (Compilateur)
- Jest avec Frisby (module de test)
- Prisma (ORM)
- Swagger (documentation automatique)
-
Ici j'ai utilisé un service SQL .
-
Voir la configuration du
.env
. -
Si vous voulez d'autre services de bdd :https://www.prisma.io/docs/
Aprés avoir pull ou téléchargé le projet, créez et configurez le .env
à la base de celui-ci :
- mariadb ou Mysql,
initialisation identique.
De la forme :
mysql://USER:PASSWORD@HOST:PORT/DATABASE
Exemple : .env
DATABASE_URL="mysql://root:randompassword@localhost:3306/mydb"
Pour plus d'info voir la platform web : Prisma :
npm install
"scripts": {
"start": "npm run prod",
"server": "node ./dist-server/bin/www",
"watch:dev": "nodemon",
"transpile": "babel ./server --out-dir dist-server",
"build": "npm-run-all clean transpile",
"clean": "rimraf dist-server",
"dev": "NODE_ENV=development npm-run-all build server",
"prod": "NODE_ENV=production npm-run-all build server",
"test": "jest",
"start-gendoc": "node ./dist-server/swagger.js"
},
- Pour démarrer le server avec la compilation automatique de babel et en mode "dev"
npm run watch:dev
- Pour actualiser la documentation (actualisez pour tout changement dans la doc)
npm run start-gendoc
- Route de la documentation :
http://localhost:3000/doc
Pour plus d'informations sur la documentation Swagger et Swagger-autogen:
- Swagger-autogen : https://github.com/davibaltar/swagger-autogen
- Swagger : https://swagger.io/docs/
- Pour demarrer les tests Jest :
- Les tests se font pendant que le server est actif ! (dupliquez les consoles)
npm run test
Pour plus d'informations sur Jest et Frisby :
Chemin | Méthode | Description |
---|---|---|
/api/user/post | POST | Ajoute un user |
/api/user/get | POST | Selectionne un user |
/api/user/list | GET | Liste tout les users |
/api/user/put | PUT | Mise à jour d'un user |
/api/user/delete | DELETE | Supprime un user |
- Vous pouvez tester cette api avec la docummentaion :
http://localhost:3000/doc
- Avec Postman
Merci de votre intérêt