Repo contenant différents bouts de codes autour d'un sujet simple.
En partant d'une idée simple (jouer avec des urls) explorer des concepts des manières de faire au niveau code, archi et permettre de tester des technos.
🚧 A faire
- un endpoint pour ajouter youpi à l'url à traiter pour avoir la version short (hum ajouter des caractères pour avec une version plus courte, un concept ^^)
- un endpoint pour enlever youpi à partir de la version short
🎯 Résultat
- Code : source : youpi.js & pour test : youpi.rest
- Conclusion : Les bases sont là, ça marche c'est pas mal mais ça ne sert pas à grand chose pour le moment ^^
🚧 A faire
L'idée est de faire une sorte de compacteur style zip de l'information
- un endpoint pour donner l'url à traiter qui nous donne la version courte
- un endpoint pour nous donner la version longue à partir de la version courte
Idées :
- Utilisation de js-string-compression
- Utilisation de zlib
🎯 Résultat
- Code : source : compress.js & pour test : compress.rest
- Conclusion : Pour la même source : "http://localhost:3001/compress/short/"
Source | Resultat |
---|---|
jsscompress.Hauffman() | \u000bdêæº.S\u0002Þ±Ú\u0012ò²ÛW\u0004Ægixv\t\\u000b�\u000fîÿj�ùº'\u001b�° |
zlib | 1f8b0800000000000003cb282929b0d2d7cfc94f4eccc9c82f2eb132363030d44fcecf2d284a2d2ed62fcec82f2ad10700e9c1ac2525000000 |
La compression sur peu de caractères n'est pas pertinente avec les algo testés
L'idée est d'utiliser un id avec un systeme de correspondance
- un endpoint pour donner l'url à traiter qui nous donne la version courte
- un endpoint pour nous donner la version longue à partir de la version courte
Idées :
- Utlisation d'un object en mémoire
- Utlisation d'un fichier
L'idée est d'utiliser un id avec un systeme de correspondance
- un endpoint pour donner l'url à traiter qui nous donne la version courte
- un endpoint pour nous donner la version longue à partir de la version courte
- Ecrire une fonction qui remplace le console.log
- Ecrire une fonction de log des req
🎯 Résultat
- Ajout d'ESLINT
- Ajout de prettier
- Api en nodejs qui permet d'ajouter "youpi" une url
- Api en nodejs qui permet de raccourcir une url en "zippant"
- Api en nodejs qui permet de raccourcir une url avec un id
- Api en nodejs qui permet de raccourcir une url avec seulement 4 caractères
- API et log
- API et docs archi
- API et doc decisions
- API et swagger
- API et metrics
- API et traces
- API et tests
- API et sécurité
- API et qualité du code (et présentation)
- API et conteneur
- API et firebase
- API et mongo
- API et bucket
- API et postman...
- API et jMeter
- API et optimisation
- API et gitHub action
- API et chaos
# Clone
git clone https://github.com/alassa50/URLALaPlage.git
# Installation des dépendances
npm i
# lancement en mode dev
npm run dev
Dans un terminal par exemple
curl -H "Content-Type: application/json" http://localhost:3001/youpi/short/alexandre
curl -H "Content-Type: application/json" -d '{"url": "http://localhost:3001/youpi/short/"}' http://localhost:3001/youpi/short
echo "# URLALaPlage" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin [email protected]:alassa50/URLALaPlage.git
git push -u origin main
Nom : REST Client
ID : humao.rest-client
Description : REST Client for Visual Studio Code
Version : 0.25.1
Serveur de publication : Huachao Mao
Lien de la Place de marché pour VS : https://marketplace.visualstudio.com/items?itemName=humao.rest-client
Installez Nodejs : https://nodejs.org/fr/download/
npm init -y
Exécution du backend
nodemon index.js
- Express : framework d'application Web conçu pour créer des applications Web et des API.
- CORS : middleware express pour activer les fonctionnalités CORS.
- [Body-Parser] : middleware pour traiter le requête brute
- [Morgan] : HTTP loggeur
- [js-string-compression] : Lib de compression de strings
- [uuid] : uuid
- [pino] : pour la partie log pino
- [pino-pretty] : pour pino -> pino-pretty
npm install --save express
npm install --save cors
npm install --save body-parser
npm install --save morgan
npm install --save js-string-compression
npm install --save uuid
npm install --save pino
Bientôt =>
- joi : bibliothèque de validation de schéma d'objet.
- dotenv : pour définir les variables d'environnement.
- Swagger UI Express : documentation API générée automatiquement, basée sur un fichier swagger.json.
- ESLint : linter de code. Analyse le code des erreurs potentielles.
- Jest : pour les tests.
- Helmet : sécurité Express.js avec en-têtes HTTP
-
[Nodemon] : Nodemon est un outil qui aide à développer des applications basées sur .js nœud en redémarrant automatiquement l’application de nœud lorsque des modifications de fichier dans le répertoire sont détectées.
-
[prettier] : prettier
npm install --save-dev nodemon npm install --save-dev --save-exact prettier npm install --save-dev autocannon
npm init @eslint/config
- Setup Local project
- Setup gcloud poc environment
firebase init firebase login --reauth