Les opérations CRUD sont la base du développement back-end web. CRUD signifie Créer, Lire, Mettre à jour et Supprimer. Elles sont des opérations essentielles pour le développement web moderne, car elles sont utilisées pour gérer les données dans la plupart des applications web.
Nous venons de publier un cours sur la chaîne YouTube freeCodeCamp.org en espagnol qui vous apprendra comment implémenter des API REST avec Node.js, Express et MongoDB. Vous apprendrez comment concevoir des routes, gérer les requêtes HTTP, interagir avec des bases de données NoSQL et sécuriser vos points de terminaison avec une authentification basée sur les jetons JSON Web Token.
Si vous avez des amis hispanophones, vous êtes invité à partager la version espagnole de cet article avec eux.
Le cours a été créé par Leonardo José Castillo Lacruz. Leonardo est un développeur logiciel et créateur de contenu qui aime enseigner la programmation et partager ses connaissances.
API et Bases de données Non-relationnelles
Voici quelques concepts qui vous seront utiles pour le cours.
API signifie « Interface de programmation d’application » en anglais.
Une API est un ensemble de règles et de spécifications qui permettent à différentes applications de communiquer entre elles.
Les API rendent le processus d’intégration des systèmes et des services beaucoup plus facile.
Dans le monde du développement web, vous pouvez les considérer comme un pont entre le front-end et le back-end car elles permettent l’échange de données entre les deux parties de l’application.
Les APIs et les bases de données sont étroitement liées. Une API peut interagir avec une base de données pour récupérer, stocker, modifier et supprimer des données.
Pour esempio, une application web peut utiliser une API pour obtenir ou mettre à jour des informations utilisateur dans une base de données.
Lors du cours, vous travaillerez avec MongoDB, une base de données non relationnelle. Ce type de base de données est également appelé « NoSQL ».
Les bases de données non relationnelles sont un type de base de données qui ne stocke pas les données dans des tables avec des lignes et des colonnes. Au lieu de cela, elles ont des manières plus flexibles de structurer et de stocker les données.
MongoDB est une base de données non relationnelle qui stocke les données dans des documents similaires à JSON, ce qui permet aux développeurs de représenter et de stocker les données de manière plus dynamique et adaptable. C’est idéal pour les applications qui gèrent de grands volumes de données non structurées ou semi-structurées.
Pour modéliser ces données, vous apprendrez également à travailler avec une bibliothèque Node.js appelée Mongoose, qui vous aide à définir le schéma de base de données pour simplifier l’interaction entre Node.js et MongoDB.
Toutes ces interactions entre l’application web et l’API devraient avoir une forme d’authentification pour s’assurer que seuls les utilisateurs appropriés peuvent effectuer des opérations sur la base de données via l’API.
Pour mettre cela en œuvre, vous utiliserez JSON Web Tokens, une méthode standardisée pour transmettre en toute sécurité des informations au format JSON.
CRUD Course
Formidable ! Maintenant que vous savez plus sur ces concepts, voyons ce que vous allez apprendre pendant le cours :
-
Introduction à MongoDB
-
Installer et configurer MongoDB
-
MongoDB Atlas
-
Se connecter à MongoDB Shell
-
Structurer une API
-
Routes et contrôleurs
-
Se connecter à MongoDB
-
Implémenter CRUD
-
Présentation de Mongoose
-
Mettre en place le modèle de données
-
Valider les données et tester l’API
-
Routes publiques, privées et d’authentification
-
Modèle utilisateur
-
JSON Web Tokens
-
Vérifier les tokens
-
Et plus…
Pendant le cours, vous allez construire une API RESTful pour un système d’adoption d’animaux. 🐾
Si vous êtes prêt à commencer à travailler sur ce projet, consultez le cours en espagnol sur la chaîne YouTube freeCodeCamp.org en espagnol:
✍️ Cours créé par Leonardo José Castillo Lacruz.
-
YouTube: @LeonardoCastillo79
-
LinkedIn: Leonardo José Castillo Lacruz
-
Twitter: @ljcl79
-
GitHub: @ljcl79