Le cours Express.js - Module 4 : créer des API RESTful avec Express | Shivendra Raghuvanshi | Skillshare
Recherche

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Le cours Express.js - Module 4 : créer des API RESTful avec Express

teacher avatar Shivendra Raghuvanshi, Lead Developer and Online Teacher

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction du cours

      2:10

    • 2.

      Aperçu de cette section

      0:56

    • 3.

      Concevoir des services RESTful avec Express.js

      6:24

    • 4.

      Express.js : une introduction

      2:24

    • 5.

      Créer votre premier serveur Express.js

      5:41

    • 6.

      Développement efficace avec Nodemon

      1:31

    • 7.

      Sécuriser les configurations avec des variables d'environnement

      3:15

    • 8.

      Routage dynamique avec des paramètres de route

      3:38

    • 9.

      Maîtriser les requêtes HTTP GET

      4:27

    • 10.

      Traiter efficacement les demandes POST

      3:41

    • 11.

      Tester les points de terminaison avec Postman

      2:21

    • 12.

      Protéger votre application avec la validation des entrées

      7:36

    • 13.

      L'art de la requête HTTP PUT

      8:15

    • 14.

      Exécuter correctement les demandes de suppression

      3:30

    • 15.

      Projet : application FareWheels

      1:37

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

4

apprenants

--

projet

À propos de ce cours

Passez à un niveau supérieur dans vos compétences en développement backend avec le module 4 de la série « Le cours Express.js » « Créer des API RESTful avec Express ». Dans ce module, vous vous plongerez dans la création d'API robustes et évolutives en utilisant Express.js, l'un des frameworks Node.js les plus populaires. En partant des bases, vous apprendrez à concevoir et à mettre en œuvre des services RESTful qui alimentent les applications web modernes.

Grâce à des exemples pratiques, vous créerez votre premier serveur Express, sécuriserez votre application en utilisant des variables d'environnement, maîtriserez le routage dynamique et traiterez les requêtes HTTP comme un pro. Vous découvrirez également des outils essentiels tels que Nodemon pour un développement efficace et Postman pour tester vos terminaux.

À la fin de ce module, vous disposerez de bases solides en développement d'API RESTful et de compétences telles que la validation des entrées, le traitement des requêtes HTTP et la protection de votre API contre les vulnérabilités courantes. Que vous créiez un projet personnel ou que vous travailliez sur une application prête à être mise en production, ce module vous permettra d'acquérir les connaissances nécessaires pour réussir.

Rencontrez votre enseignant·e

Teacher Profile Image

Shivendra Raghuvanshi

Lead Developer and Online Teacher

Enseignant·e
Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction du cours: Bienvenue dans le quatrième module du cours Express JS, BilRSTful APIs Ce cours s'inscrit dans la continuité de la série de cours Express JS. Je m'appelle Shan Ragunci et je serai votre guide dans ce voyage passionnant Fort de nombreuses années d'expérience API évolutives et de systèmes en temps réel, je suis là pour vous aider à maîtriser l'art de créer des API RESTful avec Express JS Dans ce module, nous aborderons tout. Vous devez créer des API RESTful modernes et efficaces. Cela inclut la conception de services RESTful et la création de votre premier serveur Express S. En utilisant des outils tels que Normon pour rationaliser le développement et des agents de poste pour tester vos ABI, sécurisant votre application avec variables d' environnement et en validant entrées pour garantir sa sécurité, en gérant les méthodes SCTP telles que get post, put et delete pour interagir avec les données, et en maîtrisant le routage dynamique pour rendre Cette classe est parfaite pour les développeurs ayant une connaissance de base de node JS. Vous souhaitez passer à l'étape suivante dans le développement d'API. Si vous avez toujours eu envie créer vos propres services de backend, ce module vous montrera exactement comment procéder À la fin de ce module, vous aurez les compétences nécessaires pour concevoir et créer des API RESTful sécurisées, évolutives et prêtes pour la production Il s'agit de compétences essentielles pour les développeurs de backend et d'une étape essentielle pour devenir un expert du full stack Enfin, notre projet pratique vous guidera dans la création d'une API entièrement fonctionnelle et reposante à partir de zéro Vous allez créer des itinéraires pour gérer les demandes get, post, put et delete, sécuriser votre application avec des variables d' environnement et valider les entrées pour garantir la fiabilité. Je suis très heureuse de vous aider à créer des API puissantes et évolutives avec Express JS. Plongeons-nous dans le vif du sujet et commençons. Rendez-vous à la première conférence. 2. Aperçu de cette section: I Donc, plus tôt dans la section deux, où nous avons parlé du système de modules nodaux, vous avez découvert ce module STDP Nous l'utilisons pour créer un serveur Web qui écoute sur le port 3 000 et répond aux demandes adressées à ces points de terminaison Donc, les cours root ou API. Bien que cette approche soit parfaitement adaptée, elle n'est pas idéale pour créer une application complexe, car dans une application complexe de grande taille, nous pouvons avoir différents points de terminaison, et nous ne voulons pas intégrer toutes ces instructions dans cette fonction Dans cette section, nous allons donc examiner Express, qui est un framework rapide et léger pour créer des applications Web. Ensuite, nous allons examiner les services RESTful. 3. Concevoir des services RESTful avec Express.js: Commençons cette section par une brève introduction aux services Rest PL, également appelés API RestPL Si vous savez déjà ce qu'est le repos, n'hésitez pas à sauter cette vidéo. Au début du cours, je vous ai donc présenté l'architecture client-serveur. Ainsi, la plupart, sinon la totalité, des applications que nous utilisons aujourd'hui suivent cette architecture. L'application elle-même est le client ou la partie frontale située sous le capot. Il doit communiquer avec le serveur ou le back-end pour obtenir ou enregistrer les données. Cette communication s'effectue à l'aide du protocole SDDV, le même protocole qui alimente notre Web Ainsi, sur le serveur, nous exposons un ensemble de services accessibles via le protocole STTBP Le client peut ensuite appeler directement ces services en envoyant SttprQuest Maintenant, c'est là que le repos entre en jeu. Rest est l'abréviation de Representational State Transfer. Et je sais que cela n'a probablement aucun sens pour vous car il a été introduit par un doctorant dans le cadre de sa thèse. Mais la théorie mise à part, la RST est essentiellement une convention pour créer ces services SDDB Nous utilisons donc les principes simples du protocole SGTPPtocol pour fournir une assistance lors de la création, de la lecture, de la mise à jour Nous appelons toutes ces opérations des opérations grossières Explorons maintenant cette convention l'aide d'un exemple PAL réel. Supposons que nous ayons une société appelée Fair Wheels pour la location de voitures. Nous avons une application client dans laquelle nous gérons une liste de nos clients sur le serveur. Nous devrions exposer le service à un point de terminaison comme celui-ci. Fairwheels.com réduit donc les clients de l' API afin que le client puisse envoyer SgtbrQuest afin que le client puisse envoyer SgtbrQuest avec ce Maintenant, quelques informations sur ce point de terminaison que vous devez savoir. Tout d'abord, l'adresse peut commencer par SGDP ou HTTPS. Cela dépend de l'application et de ses exigences. Si vous souhaitez que les données soient échangées sur un canal sécurisé, vous devez utiliser les GDP. Ensuite, nous avons le domaine de l'application. Ensuite, nous avons l'API. Ce n'est pas obligatoire, mais vous voyez que de nombreuses entreprises suivent cette convention pour exposer leurs services reposants. Ils incluent le mot API quelque part dans l'adresse. Cela peut être après le domaine, ou il peut s'agir d'un sous-domaine comme apfairwals.com Il n'y a pas de règle absolue. Ensuite, nous avons des clients, ce qui fait référence à la collecte de clients dans notre application. Dans le reste du monde, nous appelons cette partie une ressource. Nous pouvons exposer nos ressources telles que les clients, les voitures, les locations sur différents terminaux C'est donc notre point final pour travailler avec les clients. Toutes les opérations relatives aux clients, telles que la création d'un client ou la mise à jour d'un client seraient effectuées en envoyant une requête STDB à ce point de terminaison Le type de requête GTB détermine le type d'opération Ainsi, chaque demande SGDP contient ce que nous appelons un verbe ou une méthode qui détermine son type ou son intention Voici les méthodes HTTP standard. Nous avons obtenu pour obtenir des données, publier pour créer des données, mettre pour mettre à jour des données et supprimer pour supprimer des données. Explorons maintenant chacune d'entre elles à l' aide de l'exemple de nos clients. Pour obtenir la liste de tous les clients, nous devons envoyer une demande STD get à cette adresse Notez le nom pluriel des clients. Il indique ici une liste de clients. Ainsi, lorsque nous envoyons une requête STP get à ce point de terminaison, notre service devrait nous envoyer quelque chose comme ceci Nous avons donc un ensemble d'objets clients. Si nous voulons un seul client, nous devons inclure l'identifiant de ce client dans l'adresse. Notre serveur répondrait alors avec un objet client comme celui-ci. Maintenant, pour mettre à jour un client, nous devons envoyer une requête StdpPut à ce Et notez qu'une fois encore, nous spécifiez ici l'identifiant du client à mettre à jour. Mais nous devons également inclure l'objet du client dans le corps de la demande. Il s'agit donc d'une représentation complète de l'objet client avec des propriétés mises à jour. Nous l'envoyons au serveur, et le serveur met à jour le client avec un identifiant donné en fonction de ces valeurs. De même, pour supprimer un client, nous devons envoyer une demande de suppression STDP à ce point de terminaison Mais ici, il n'est pas nécessaire d' inclure l' objet client dans le corps de la demande, car il suffit d'un identifiant pour supprimer un client. Enfin, pour créer un client, nous devons envoyer une StdpPostrQuest à Ce n'est pas le cas ici, car nous ajoutons un nouveau client. Nous ne traitons pas avec un client en particulier. Nous n'avons pas l' identifiant dans l'adresse. Nous travaillons avec un ensemble de clients. Nous ajoutons donc un nouveau client à cette collection, et c'est pourquoi nous devons inclure l'objet client dans le corps de la demande. Le serveur obtient cet objet et crée un client pour nous. Voici donc la convention reposante. Nous exposons nos ressources, telles que les clients, à l'aide d'une adresse simple et significative et prenons en charge diverses opérations les concernant, telles que leur création ou leur mise à jour à l'aide des méthodes GTP standard Tout au long de cette section, vous allez apprendre à utiliser le framework express pour créer le service RESTful de gestion de la liste des clients Cependant, dans cette section, nous n'effectuerons aucun travail sur les bases de données car cela ajouterait de la complexité. nous concentrerons uniquement sur le développement de services SDDP, et nous utiliserons un simple tableau en mémoire pour conserver la liste de nos clients Plus tard dans le cours, nous verrons comment utiliser une base de données. 4. Express.js : une introduction: Voici donc la citation que nous avons écrite dans la section sur le noyau du nœud, où je vous présente le module STDP Nous pouvons donc voir qu'avec le module STDP, nous pouvons créer un serveur Web Ici, nous avons une fonction de rappel qui prend deux paramètres, la requête et la réponse Et avec cet objet de requête, nous pouvons vérifier l'URL de la demande entrante. Ainsi, nous pouvons définir différentes routes pour notre application. Donc, si vous avez une demande pour, disons, des bourses d' API, voici comment nous allons répondre au client Bien que cette approche fonctionne certainement, elle n'est pas très maintenable car à mesure que nous définissons de nouvelles routes pour notre application, nous devons ajouter d'autres blocs I dans cette fonction de rappel C'est alors qu'un cadre entre en jeu. Un framework donne à notre application une structure appropriée, ce qui nous permet d'ajouter facilement plus de routes tout en gardant code de notre application maintenable Il existe maintenant différents frameworks pour créer des applications Web et des serveurs Web au-dessus d'un nœud. Le plus populaire est Express. Donc, si vous allez sur tonpmjs.com, recherchons Express La version actuelle est donc la version 4.18 0.2. Jetons un coup d'œil ici. Alors, sur le côté droit, regardez les statistiques. Il y a eu plus de 27 millions de téléchargements hebdomadaires. C'est un framework très populaire. Il est également très rapide, léger et parfaitement documenté. Alors maintenant, de retour dans le terminal, créons un nouveau dossier pour cette section. Je vais donc l'appeler Express Themo. Maintenant, entrons dans ce dossier, lançons NPM dedans avec yes black Nous avons donc maintenant un package JCNFle et enfin, nous pouvons installer Express Magnifique. Dans la prochaine conférence, je vais vous montrer comment créer votre premier serveur Web à l'aide d'Express. 5. Créer votre premier serveur Express.js: C'est bon. Maintenant, dans le code VS, ajoutons un nouveau fichier app dot js. Donc, dans ce fichier, nous voulons d'abord charger le module express. Nous utilisons donc la fonction requise, lui donnant le nom de notre module, qui est express. Maintenant, cela renvoie une fonction. C'est ce que nous appelons l'express. D'accord. Nous devons maintenant appeler cette fonction comme ceci. Et comme vous pouvez le voir, cela renvoie un objet de type express. Par convention, nous appelons cette application d'objets une application. Nous stockons donc le résultat dans une application d'appel constant. Cela représente donc notre application. Maintenant, cet objet d'application possède un tas de méthodes utiles. Nous avons des méthodes comme t, post, put et delete. Toutes ces méthodes correspondent à des verbes STDP ou à des méthodes STTP dont je vous ai parlé plus haut dans Donc, si vous souhaitez gérer une demande de publication DDP vers un point de terminaison, vous devez utiliser app point post Dans cette conférence, nous voulons simplement utiliser app point G. Nous voulons implémenter quelques points de terminaison qui répondent à une requête TDP Get Cette méthode prend donc deux arguments. Le premier argument est le chemin ou l'URL. Ici, je vais utiliser une barre oblique pour représenter la racine du site Web Maintenant, le deuxième argument est une fonction de rappel. Il s'agit d'une fonction qui sera appelée lorsque nous aurons une StdpgrQuest vers D'accord, cette fonction de rappel doit donc avoir deux arguments request et response Cela passe donc à un bloc de code. Maintenant, cet objet de requête possède un tas de propriétés utiles qui nous donnent des informations sur la demande entrante. Si nous voulons en savoir plus sur toutes ces propriétés, il est préférable de consulter la documentation express , car dans ce cours, nous n'utiliserons qu'une poignée de ces propriétés. Rendez-vous donc sur expresj.com en haut de la page, regardez la version 4 de référence de l'API Maintenant, ici, vous pouvez voir l'objet de la requête, et en dessous, vous pouvez voir toutes les propriétés qui sont à votre disposition. Nous avons une URL de base, un corps pour lire le corps de la demande, des cookies, un nouveau nom d'hôte, méthode IP, une URL d'origine , des paramètres, etc. Pour en revenir à notre code, lorsque nous recevons une demande GDP get à la racine de notre site Web, nous répondons par un message Hello world. Répondez à CNN Bonjour WWW. Voici comment nous définissons un itinéraire. Nous spécifiez le chemin ou l' URL et une fonction de rappel , également appelée gestionnaire de route Enfin, nous devons écouter sur un port donné. Nous appelons donc app point LICEN. Nous lui donnons le numéro de port 3 000. Et éventuellement, nous pouvons transmettre une fonction. Cela sera appelé lorsque l'application commencera à écouter sur le pot donné. Donc, encore une fois, nous utilisons la syntaxe de la fonction flèche pour afficher quelque chose sur la console. Donc, la console Dot Log écoute sur le port 3 000. Maintenant, revenez dans le terminal node app point js. OK, nous écoutons sur le port 3 000. Passons maintenant à Cron et passons au port hôte local 3 000 Voici donc notre message « Bonjour tout le monde ». Définissons maintenant un autre itinéraire. Donc, encore une fois, nous allons appeler app point cat. Maintenant, celui-ci va être slash API slash CoorSS. Encore une fois, nous passons la fonction avec deux arguments qui sont request et response, et cela passe à un bloc de code. Maintenant, dans un scénario réel , nous voulons obtenir la liste des cours de la base de données et les renvoyer. Mais comme je vous l'ai déjà dit, dans cette section, nous nous concentrons uniquement sur la création de ces points de terminaison Nous n'allons pas travailler sur la base de données, je vais donc simplement renvoyer un tableau de nombres. Donc, la réponse envoyée passe un tableau de numéros gratuits. À l'avenir, nous pourrons remplacer ces numéros par de véritables objets de cours. Maintenant, de retour dans le terminal, nous devons arrêter ce processus et le recommencer. Appuyez donc sur Ctrl et C. OK, encore une fois, notez, l'application part à la poursuite. Maintenant, revenons à Pro, passons à slash APIs OSS. Écoutez, nous avons une série de numéros gratuits. Magnifique. C'est donc que je veux que tu fasses attention ici. Dans cette implémentation, nous n'avons pas ces blocs I. Nous définissons de nouveaux itinéraires en appelant l'application point get. Avec cette structure, au fur et à mesure que notre application grandit, nous pouvons déplacer certaines de ces routes vers différents fichiers. Par exemple, nous pouvons déplacer tous les itinéraires liés aux cours vers un fichier distinct tel que courses point JS. Express donne à notre application un squelette, une structure. 6. Développement efficace avec Nodemon: Jusqu'à présent, vous avez remarqué que chaque fois que nous apportons une modification à ce code, nous devons retourner dans le terminal, arrêter ce processus et le recommencer. C'est très fastidieux. Je vais donc vous montrer une meilleure solution. Nous allons installer un package de nœuds appelé mode Nord , abréviation de node monitor. Donc, dans le terminal, NPM installe G parce que nous voulons l'installer globalement, afin de pouvoir l'exécuter n'importe où Et le nom du package est Nord Mode. Comme je vous l'ai déjà dit, si vous êtes sur Mac et que vous n'avez pas correctement configuré les autorisations, vous devez mettre le pseudo au premier plan. accord ? Le mode Non est installé. Ainsi, au lieu d'exécuter notre application en utilisant node, nous utilisons le mode node. OK ? Vous pouvez maintenant voir que Normon surveille tous les fichiers de ce dossier, tous les fichiers avec des extensions Donc, si vous revenez ici et que vous apportez une simple modification , puis que vous enregistrez le fichier. Maintenant, regardez, dans le terminal, Normon a redémarré notre application ou notre processus à cause des modifications Nous n'avons donc plus besoin de le faire manuellement. Maintenant, de retour dans le navigateur, si nous envoyons une demande à la racine du site Web, nous pouvons voir notre nouveau message affiché ici. 7. Sécuriser les configurations avec des variables d'environnement: Maintenant, une chose que nous devons améliorer dans ce code est cette valeur codée en dur pour le port. Nous avons donc utilisé 3 000 comme nombre arbitraire. Bien que cela puisse fonctionner sur la machine de développement, il est peu probable que cela fonctionne dans un environnement de production. Parce que lorsque vous déployez cette application un environnement d'hébergement, le port est attribué dynamiquement par l'environnement d'hébergement. Nous ne pouvons donc pas compter sur 3 000 personnes disponibles. Le moyen de résoudre ce problème est donc d'utiliser une variable d' environnement. Généralement, dans les environnements d'hébergement pour les applications de nœuds, nous avons cette variable d'environnement appelée port. Une variable d'environnement est essentiellement une variable qui fait partie de l'environnement dans lequel un processus s'exécute. Sa valeur est définie en dehors de cette application. Je vais vous montrer comment cela fonctionne dans une seconde. Dans cette application, nous devons donc lire la valeur de cette variable d' environnement sportif. Et pour ce faire, nous utilisons l'objet process. Nous avons cet objet global appelé processus. Cet objet possède une propriété appelée N , abréviation de variables d' environnement. Ensuite, nous ajoutons le nom de notre variable d' environnement. Dans ce cas, si cela est défini, nous allons l'utiliser. Sinon, nous allons en utiliser 3 000. Nous pouvons maintenant stocker le résultat dans une constante appelée port. OK, supprimons ça. Enfin, nous devons remplacer 3 000 par un port et modifier notre message en conséquence. Je vais donc remplacer ce code unique par backtick. Nous pouvons donc utiliser un modèle littéral. Et ici, nous allons remplacer 3 000 par une valeur dynamique. Nous ajoutons donc de la Dosine, accolades au curry, puis nous ajoutons notre constante Maintenant, de retour dans le terminal, exécutons cette application en mode Node. Donc, sur cette machine, vous pouvez voir que je n'ai pas de variable d'environnement appelée port. C'est pourquoi 3 000 est utilisé comme port pour le serveur Web. Je vais maintenant définir une variable d' environnement. Arrêtons donc ce processus. Sur Mac, nous pouvons définir une variable d'environnement en exécutant la commande d'exportation. Si nous sommes sous Windows, vous devez utiliser set in command prompt et dollar et deux-points dans Power Shell. Maintenant, nous ajoutons le nom de la variable d'environnement dans ce cas, le port et définissons sa valeur. Je vais en utiliser 5 000. Nous avons donc maintenant cette variable d' environnement appelée port avec une valeur de 5 000. Avec cela, nous exécutons cette application, Norman, vous pouvez voir que maintenant nous écoutons sur le port 5 000. C'est donc la bonne méthode pour attribuer un port aux applications de votre nœud. Vous devriez essayer de lire la valeur d'une variable d'environnement appelée port. S'il existe une valeur, vous devez l'utiliser. Sinon, utilisez un nombre arbitraire pour votre machine de développement. 8. Routage dynamique avec des paramètres de route: Très bien, actuellement, nous avons un moyen d'obtenir la liste des cours. Dans cette conférence, je vais vous montrer comment créer un itinéraire pour accéder à un seul cours. Ainsi, plus tôt dans cette section, où j'ai parlé des services RESTful, vous apprenez que pour accéder à un seul cours, nous devons inclure l'identifiant du cours dans l'URL Le point de terminaison devrait donc être comme celui-ci en CSS de l'API Slash. En supposant qu'il s'agit de l'identifiant du cours. Voyons donc comment implémenter un tel itinéraire. Donc, app point get, nous ajoutons le chemin qui est slash API slash Courses Nous devons maintenant définir un paramètre. Nous ajoutons donc une colonne et un identifiant. Cet ID est le nom de notre paramètre. Ici, nous pourrions utiliser n'importe quoi. Il n'est pas nécessaire que ce soit une pièce d'identité. Il peut s'agir d'un identifiant de cours, mais l'identifiant est plus court et plus conventionnel. Nous ajoutons maintenant notre fonction de gestionnaire d'itinéraires. La demande et la réponse vont donc à. Maintenant, pour lire ce paramètre, nous utilisons request point forms point ID. Donc, pour l'instant, envoyons simplement ceci au client. Donc point de réponse B. D'accord. De retour dans le navigateur. Passons maintenant à l'API COSSO. Vous pouvez donc voir que nous avons bien lu la valeur de ce paramètre. Il est également possible d'avoir plusieurs paramètres dans un itinéraire. Par exemple, imaginez que vous créez un service pour alimenter un bloc, afin que nous puissions avoir un itinéraire comme celui-ci après votre mois. Nous avons donc deux paramètres. Et avec cela, nous pouvons obtenir tous les messages du mois et de l'année donnés. Nous pouvons maintenant lire ces paramètres comme avant. Demandez donc des points PRMs point par an ou par mois. Pour cette démo, laissez-moi vous montrer ce point de requête PremsObject. De retour dans le navigateur. Passons maintenant à l' API post 2023 et une autre. C'est donc l'objet de notre requête PAmS. Nous avons deux propriétés et un mois, et elles sont nommées en fonction des paramètres de notre itinéraire. Avec l'Express, nous pouvons également obtenir les paramètres des chaînes de requête. Il s'agit de paramètres que nous ajoutons dans l'URL après un point d'interrogation. Par exemple, nous pouvons obtenir tous les articles en janvier 2023 et les trier par nom. Nous ajoutons donc un point d'interrogation, trions en le définissant sur le nom. Il s'agit d'un paramètre de chaîne de requête. Nous utilisons des paramètres de chaîne de requête pour fournir des données supplémentaires à nos services principaux. Nous utilisons donc des paramètres de route pour les valeurs essentielles ou obligatoires, alors que nous utilisons des paramètres de chaîne de requête pour tout ce qui est optimal. Maintenant, laissez-moi vous montrer comment lire les paramètres d'une chaîne de requête. Donc, de retour dans le code VS, au lieu de demander des points PRM, nous utilisons la requête point de demande, enregistrons à nouveau dans Chrome, et voici ce que nous obtenons Les paramètres de requête sont donc stockés dans un objet contenant un ensemble de paires clé-valeur. 9. Maîtriser les requêtes HTTP GET: Je vais bien. Implémentons maintenant un nouveau point de terminaison pour obtenir un cours unique depuis le serveur. Tout d'abord, revenons aux cours et ajoutons le paramètre ID ici. OK, maintenant, en haut, définissons un tableau appelé cours. Des cours donc constants. Nous l'avons défini comme un tableau. Et dans ce tableau, nous allons avoir trois objets de cours. Chaque objet doit donc avoir deux propriétés, un identifiant et un nom. Et bien sûr, nous pouvons en avoir plus. Mais par souci de simplicité, je vais m' en tenir à deux propriétés ici. OK, maintenant dupliquons cette ligne et changeons les identifiants ainsi que les noms deux et trois. Nous avons donc deux points de terminaison, l'un pour accéder à tous les cours et l'autre pour obtenir un seul cours, n'est-ce pas ? Dans le premier, nous allons renvoyer notre liste de cours. OK ? Maintenant, dans le second, nous devrions écrire une logique pour rechercher le cours avec un identifiant donné. Permettez-moi donc de supprimer ceci. Nous allons d'abord suivre les cours point FIE. Il s'agit d' une méthode disponible sur tous les tableaux en JavaScript. En tant qu'argument de cette méthode, nous devons transmettre une fonction. Cette fonction sera utilisée pour trouver un cours correspondant à un critère donné. Nous utilisons donc la syntaxe de la fonction flèche. T va à, et nous écrivons ici une logique qui renvoie une valeur booléenne Cette valeur booléenne détermine si ce cours est celui que nous recherchons L'ID C doit donc être égal à request point proms point ID. Cependant, cette demande à Pam ID renvoie une chaîne. Donc, pour que cette comparaison fonctionne correctement, nous devons passer cette chaîne dans un entier. Nous appelons donc pasen, qui est l'une des fonctions globales disponibles en Javascript, puis nous obtenons le résultat et le stockons dans une constante appelée quote Nous pouvons maintenant utiliser let ou constant. Nous utilisons let si vous voulez définir une variable que nous pourrons réinitialiser ultérieurement et nous utilisons constant si nous voulons définir une constante. Dans ce cas, je ne veux pas réinitialiser le cours plus tard dans cette fonction, mais encore une fois, il est parfaitement normal d'utiliser let here également. C'est juste une préférence personnelle. Nous obtenons l'objet du cours. Maintenant, si ce cours n'a pas de valeur, en d'autres termes, si nous ne trouvons aucun cours avec un identifiant donné, par convention, nous devons renvoyer une réponse avec le code d'état TDP de quatre ou quatre Cela signifie que l'objet n'a pas été trouvé. C'est donc l'une des conventions des ABI reposantes. Si le client demande une ressource, mais que cette ressource n'existe pas sur le serveur, nous devons renvoyer une réponse avec un code d'état de quatre ou quatre. Donc, renvoyez l' état du point de réponse quatre ou quatre, et de manière optimale, nous pouvons également envoyer un message au client Donc, envoyer le cours avec un identifiant donné n'a pas été trouvé. OK ? Sinon, si nous avons un identifiant de cours avec cet identifiant, nous allons simplement le renvoyer au client. Donc, le point de réponse est un cours. Maintenant, testons cela. B dans le navigateur, passons à Slash API slash courses slash one Nous avons donc un cours avec l'ID un, et c'est pourquoi nous obtenons cet objet SN dans la réponse. OK, si je le change à dix, nous recevrons ce message. Le cours associé à un identifiant n'a pas été trouvé. Et pour nous assurer que le code d'état de cette réponse est quatre ou quatre, nous pouvons l'ouvrir à partir des outils de développement. Cliquez donc avec le bouton droit sur Effacer, passez à inspecter. Ensuite, dans l'onglet réseau, assurez-vous qu'il n'y a pas de filtre ici, sélectionnez tout, puis actualisez la page en appuyant sur Ctrl R sous Windows ou sur Command R sous Mac. Voici donc une requête que nous envoyons au serveur. Vous pouvez voir que le code d'état est quatre ou quatre, ce qui signifie introuvable. 10. Traiter efficacement les demandes POST: Jusqu'à présent, nous avons créé deux routes qui répondent à SttpgrQuest Et nous utilisons ces itinéraires pour accéder à tous les cours ainsi qu'à un seul cours. Dans cette conférence, je vais vous apprendre à répondre à STTPPostrQuest Nous utilisons donc une requête de publication TTP pour créer un nouveau cours, donc app point post Au lieu de la méthode G, nous utilisons la méthode post. Maintenant, comme pour la méthode G, nous devons spécifier un pap. Cela devrait donc être une barre oblique EBS CSS, car nous allons publier avec une collection de C'est pourquoi j'utilise un nom pluriel ici. Ensuite, nous avons besoin de notre gestionnaire de route, donc la demande et la réponse vont à Card black Dans ce gestionnaire de route, nous devons lire l'objet de cours qui doit se trouver dans le corps de la demande Utilisez ses propriétés pour créer un nouvel objet de cours , puis ajoutez-le à notre tableau de cours. Créons un nouvel objet de cours. Cours constant. Encore une fois, j'utilise une constante car nous n' allons pas réinitialiser cet objet de cours ultérieurement Définissons-le donc sur un nouvel objet. Maintenant, comme nous ne travaillons pas avec une base de données, nous devons attribuer manuellement un identifiant. Donc, identifiez, et nous obtenons le nombre d'éléments de notre tableau de cours, c'est-à-dire la longueur des points des cours, et nous y ajoutons simplement un. À l'avenir, lorsque nous travaillerons avec une base de données, l'identifiant sera attribué par la base de données. Vient ensuite la propriété du nom. Nous devons maintenant le lire dans le corps de la demande. Demandez donc le nom du point body point. Donc, ici, je suppose que dans le corps du point de demande, nous avons un objet et que cet objet a une propriété name. Maintenant, pour que cette ligne fonctionne, nous devons activer l' analyse des objets JSN dans le corps de la requête, car par défaut, cette fonctionnalité n'est pas activée dans Express Donc, en haut, après avoir obtenu l'objet de l'application, nous devons appeler app.us et ici nous appelons express point JSON Cela peut vous sembler un peu étrange ou peu familier, mais ne vous inquiétez pas. Plus loin dans cette section, nous allons explorer cela en détail. En gros, ce que nous faisons ici c'est ajouter un intergiciel Ainsi, lorsque nous appelons la méthode Express Jin, cette méthode renvoie un intergiciel Ensuite, nous appelons l'application pour utiliser ce middleware dans le pipeline de traitement des demandes Encore une fois, nous allons explorer cela en détail plus loin dans la section. Pour en revenir à notre nouveau gestionnaire d'itinéraires, nous avons un objet de cours Ensuite, nous l'introduisons dans notre tableau, afin que les cours suivent leur cours. Enfin, par convention, lorsque nous publions un objet sur le serveur, lorsque le serveur crée un nouvel objet ou une nouvelle ressource, vous devez renvoyer cet objet dans le corps de la réponse. Donc, le point de réponse est un cours. La raison en est que nous attribuons ce D au serveur, nous devons renvoyer cet objet de cours au client car il est probable que le client besoin de connaître l'identifiant ce nouvel objet ou de cette nouvelle ressource Voici donc comment nous gérons les requêtes de publication HTTP. Dans la prochaine conférence, je vais vous montrer comment tester ce point de terminaison. 11. Tester les points de terminaison avec Postman: Très bien, pour appeler les services SDDP, nous allons utiliser l'API Postman Donc, si vous n'avez jamais utilisé Postman auparavant, postman.com et téléchargez l'application sur Donc, en haut à droite, accédez au téléchargement du produit. Une fois téléchargé, ouvrez ce fichier et installez-le dans votre système comme suit. Une fois cela fait, vous pouvez ouvrir Postman comme n'importe quelle autre application de votre système. Maintenant, il se peut qu'il vous soit demandé de créer un compte, mais vous n'êtes pas obligé de le faire. Comme nous travaillons localement, nous pouvons utiliser un bloc-notes, d'accord Maintenant, sur cette page, nous pouvons créer une nouvelle requête TTB. Ainsi, à partir de ce menu déroulant, nous définissons le type d' une demande de publication. Vous avez mis l'URL ici. Dans ce cas, il s'agit de TDP, hôte local. Sur ma machine, j'utilise le port 3 000 pour héberger cette application, APIs Courses. Nous devons maintenant définir le corps de cette demande à partir de cette liste, sélectionner Pro puis JSN Ainsi, nous pouvons mettre un objet JSN dans le corps de la requête Ajoutons donc un objet ici et donnons-lui un nom de viol. Par nom, nous l'avons défini comme nouveau cours, puis nous l'avons finalement défini. Vous pouvez voir que le statut de cette demande est 200, qui signifie qu' elle a été traitée avec succès. Et voici le corps de la réponse. L'ID est donc quatre parce que nous avons maintenant quatre cours dans notre catalogue, et c'est le même nom que celui que nous envoyons au serveur. Voici donc comment nous testons les services HTTP à l'aide de Postman. Maintenant, dans cette implémentation, nous avons supposé qu' il existe un objet avec une propriété name dans le corps de la demande. Que faire si le client oublie d'envoyer cette propriété ou envoie un nom non valide, peut-être un nom trop court ? C'est là que la validation des entrées entre en jeu, et c'est le sujet de la prochaine conférence. 12. Protéger votre application avec la validation des entrées: Dans cette conférence, je vais vous montrer comment effectuer la validation des entrées. en tant que bonne pratique en matière de sécurité, vous ne devez jamais vous fier à ce que le client vous envoie. Vous devez toujours valider la saisie. Ainsi, dans cet exemple particulier, étant donné que nous avons affaire à un objet simple dont une seule propriété est le nom, nous pouvons écrire une logique de validation comme celle-ci. Donc, si je demande que le nom du point n' existe pas ou que je demande que la longueur du nom du point soit inférieure à trois, nous allons renvoyer une erreur au client. La convention RESTful consiste à renvoyer une réponse avec le code d'état 400 Cela signifie une demande PAD. Pour ce faire, nous appelons le point de réponse status 400, puis nous pouvons envoyer un message d'erreur. Dans ce cas, nous pouvons écrire un message d'erreur générique tel que le nom est obligatoire et doit comporter au moins trois caractères. À présent, dans votre implémentation, vous souhaiterez peut-être différencier les erreurs. Par exemple, si le client n'a pas envoyé la propriété name, peut-être devriez-vous simplement répondre en indiquant que le nom est requis. Ou s'ils ont envoyé le nom, mais que celui-ci n'était pas assez long, vous pourriez envoyer un autre message d'erreur. Enfin, nous revenons ici car nous ne voulons pas que le reste de la fonction soit exécuté. Il s'agit d'une idée de base. Cependant, dans le monde réel, il est plus probable que vous travailliez avec un objet complexe, quelque chose de plus complexe que cet objet de cours présenté ici. Vous ne voulez pas écrire une logique de validation complexe comme celle-ci au début de votre gestionnaire de route Permettez-moi donc de vous présenter un package de nœuds qui vous permet de valider très facilement l'entrée. Donc, sur Google, si vous recherchez NPM Joy with I, regardez, voici le premier lien Vous pouvez donc voir ici qu'il y a plus de 8 millions de téléchargements par semaine. C'est un package très populaire. Maintenant, je vais vous montrer comment remplacer cette logique de validation par Joy. Alors d'abord, de retour dans le terminal, installons Joy. Au moment de l' enregistrement de cette vidéo, la dernière version est la version 17.9 0.2 Si vous voulez vous assurer que nous avons exactement la même expérience que celle que je vais vous montrer dans cette vidéo, installez cette version exacte. Donc NPM install hoy à 17.9 0.2, d'accord ? Maintenant, revenons dans le code en haut de page, nous devons charger ce module. Exigez donc Joy, obtenez le résultat et stockez-le dans une constante appelée Joy with J car ce qui est écrit à partir de ce module est une classe. Et comme je vous l'ai déjà dit, en JavaScript, nous utilisons la convention de dénomination Pascal pour nommer nos classes. La première lettre de chaque mot doit donc être en majuscule. est également recommandé mettre toutes les pauses nécessaires au-dessus de ce fichier. De cette façon, vous pouvez facilement voir quelles sont les dépendances de ce module. Ce module d'application dépend donc de deux modules. L'un est Joy, l' autre est Express. Cette classe Joy est maintenant de retour dans notre gestionnaire d'itinéraires. Maintenant, avec Joy, nous devons d'abord définir un schéma. Un schéma définit la forme de nos objets. Quelles sont les propriétés de cet objet ? Quel est le type de chaque propriété ? Avons-nous un e-mail ? Avons-nous une ficelle ? Quel est le nombre minimum ou maximum de caractères ? Avons-nous un numéro ? Dans quelle fourchette doit se situer ce chiffre ? C'est donc un travail de Schema. Donc, ici, je vais d'abord définir un schéma. Sur le schéma envoyé, nous l'avons défini sur un objet. C'est la forme de notre objet de cours. Ici, nous voulons avoir une propriété de nom, et nous l'avons définie sur Joy dot string. Nous disons donc à Joy qu'il s'agit d'une chaîne, qu'elle doit comporter au moins trois caractères et qu'elle doit être obligatoire. Il dispose donc d'une API très fluide. Encore une fois, vous pouvez consulter la documentation pour voir toutes les méthodes disponibles. Voici donc notre schéma. Maintenant, nous appelons schema point Validate, et nous lui donnons une requête dans le corps. Maintenant, cette méthode de validation renvoie un objet. Stockons cela dans une constante appelée résultat. Pour cette démo, je vais enregistrer ce résultat sur la console. Donc, avant d'aller plus loin, disons ceci, revenons au facteur Créons un autre cours. Maintenant, retournez dans le terminal. C'est donc notre objet de résultat. Il possède deux propriétés, l'erreur et la valeur. Seul l'un d'entre eux peut avoir une valeur. Dans ce cas, comme nous envoyons un objet de cours valide, nous avons cet objet ici en tant que valeur de la propriété value. Si vous envoyez un objet non valide, la valeur sera nulle et une erreur sera définie. Laisse-moi te montrer. Alors, associez les postiers, supprimons la propriété du nom Renvoyez-le maintenant dans le terminal. OK, regardez, voici l'objet obtenu. Il s'agit de la propriété d'erreur. Il est défini sur un objet présentant une erreur de validation. Le nom est obligatoire. Pour en revenir à un gestionnaire de route, au lieu de cette logique de validation manuelle, nous pouvons vérifier la valeur de la propriété d'erreur result thot. Donc, si cette erreur se produit, nous allons envoyer une réponse avec le code d'état 400 et dans le corps de la réponse. Pour l'instant, nous pouvons simplement ajouter une erreur de point de résultat, d'accord ? Et vous n'avez plus besoin de ce journal à points de la console. Dis. Maintenant, de retour dans Postman, une fois de plus, je vais envoyer cet objet vide Maintenant, regardez la réponse. C'est donc ce que nous obtenons. Un objet doté de ces propriétés. Détails d'origine, qui sont un tableau de messages d'erreur. Voici donc le premier message. Le nom est obligatoire. Maintenant, cet objet est trop complexe pour envoyer le type. Vous voulez peut-être simplifier les choses. Pour revenir au code, une solution simple consiste à accéder au tableau des détails, à obtenir le premier élément, puis à accéder à la propriété du message. Ainsi, au lieu d'utiliser le premier élément, vous souhaiterez peut-être accéder à tous les éléments de ce tableau, obtenir leur propriété de message et les concaténer Cela dépend entièrement de vous. Alors, économisez une fois de plus, envoyons une demande non valide, et maintenant nous obtenons le nom requis. Si vous accédez à notre demande et que vous ajoutez la propriété name, mais que vous l'avez envoyée à une chaîne d'un seul caractère, nous obtenons maintenant une erreur différente. La longueur du nom doit être d'au moins trois caractères. Vous pouvez donc voir que Joy permet de valider très facilement les entrées et de renvoyer messages d'erreur appropriés au client. 13. L'art de la requête HTTP PUT: C'est bon. Voyons maintenant comment mettre à jour un cours. Ajoutons une nouvelle application de gestion d' itinéraires. Nous utilisons la méthode put pour mettre à jour les ressources. Maintenant, la partie devrait être slash API slash Courses. Et ici, nous avons besoin d'un paramètre de route car nous avons affaire à un parcours spécifique. Donc, l'identifiant, maintenant la fonction, la demande et la réponse du gestionnaire de route passent à un quod black C'est bon. Maintenant, voici la logique que nous devons mettre en œuvre. Tout d'abord, nous devons rechercher ce cours avec un identifiant donné. Alors, recherchez le cours. Si le cours n'existe pas, s'il n'existe pas, nous devons en renvoyer quatre ou quatre. Cela signifie que la ressource n'a pas été trouvée. Sinon, nous devons valider le cours, assurer qu'il est en bon état. Si c'est valide, nous devons renvoyer une erreur 400, ce qui signifie une demande Pat. Si vous arrivez ici, cela signifie que tout va bien. Nous mettons donc à jour le cours et le renvoyons au client. C'est une logique que nous devons mettre en œuvre. Nous avons déjà du code que nous pouvons réutiliser ici. Je ne vais pas tout taper à la main. Je vais copier du code provenant de nos autres gestionnaires d'itinéraires abord, nous voulons rechercher le cours et s'il n'existe pas, nous voulons renvoyer une erreur de quatre ou quatre. Pour cela, je vais passer à cet autre gestionnaire d'itinéraires où nous n'avons qu'un seul cours C'est une logique qui nous intéresse. Nous consultons le cours et s'il n'existe pas, nous renvoyons une erreur de quatre ou quatre. Copiez donc ces deux lignes, nous en avons terminé avec la première partie. La deuxième partie est entièrement consacrée à la validation. Pour cela, je vais me rendre sur notre point de terminaison de publication. Ici, nous devons copier le schéma, ainsi que cette ligne pour valider le corps de la requête en utilisant joy et le code pour renvoyer 400 s'il n'est pas valide Mais cette approche pose un problème. Le problème est que, dans ce cas, nous avons un schéma très simple. Et si vous avez affaire à un objet complexe doté de nombreuses propriétés ? Ensuite, notre logique de validation serait dupliquée dans différents itinéraires de chargement. Copions donc le bateau pour le moment, puis nous reviendrons le refactoriser pour l'améliorer Copiez donc ces lignes et collez-les ici. Nous sommes donc en train de valider, et si vous avez une erreur dans le résultat, nous allons renvoyer cette erreur 400 Voici donc notre deuxième partie. Nous avons le schéma, nous le validons, et si nous avons une erreur, nous renvoyons l'erreur 400. Nous en avons terminé avec la deuxième partie. Maintenant, la troisième partie. À ce stade, nous avons donc un objet de cours. Nous pouvons mettre à jour ses propriétés, donc bien sûr point nem, nous l'avons configuré pour requérir point p point Et bien sûr, si nous avons d'autres propriétés, nous les définirons également ici. Nous en avons donc terminé avec la mise à jour du cours, et enfin, nous devons renvoyer le cours mis à jour au client. Cours Response point CN. C'est ainsi que nous gérons une StdbputrQuest. Maintenant, je vous ai dit que nous avons dupliqué cette logique de validation Je vais extraire ces quelques lignes dans une fonction distincte que nous pouvons réutiliser à la fois dans ce gestionnaire de route pour gérer un STTPPutrQuest, ainsi que dans l'autre fonction que nous avons écrite dans la dernière conférence pour créer un la dernière conférence Définissons maintenant une fonction ici et appelons-la validate course. Nous lui donnons un objet de cours. Maintenant, dans cette fonction, nous devrions avoir le schéma ainsi que cette ligne pour valider le cours Alors coupez ces quelques lignes, collez-les ici. Maintenant, au lieu de valider le corps du point de requête, nous allons valider l'argument transmis à cette méthode, afin qu'il soit l'objet du cours Enfin, nous pouvons simplement renvoyer ce résultat à l'appel. Il n'est pas nécessaire de définir une constante. Avec cette nouvelle implémentation, nous avons donc toute la logique de validation en un seul endroit. Nous pouvons maintenant le réutiliser. Voici donc notre méthode de vente. Nous définissons un résultat d'appel constant et le configurons pour valider le cours. Et comme argument, nous transmettons request point body. Nous pouvons maintenant rendre ce code un peu plus propre et plus court en utilisant la fonction de déstructuration d'objets dans le Javascript moderne Alors regardez, nous obtenons ici cet objet de résultat et nous accédons à la propriété d'erreur du point de résultat à deux endroits différents. Puisque tout ce qui nous intéresse est cette propriété d'erreur, nous pouvons l'obtenir en restructurant les objets. Permettez-moi donc de dupliquer cette ligne et vous montrer comment fonctionne la déstructuration d'objets de la restructuration d'objets, lors de la déclaration d'une variable ou d'une constante, nous ajoutons culebrass, puis nous ajoutons ici la propriété de l'objet cible Dans ce cas, l' objet cible renvoyé par notre méthode de cours valide possède deux propriétés, error et value. Dans ce cas, nous voulons simplement la propriété d'erreur. Nous l'avons donc placé entre les bretelles Cul. Cela équivaut donc à obtenir une erreur de point de résultat. Nous utilisons cette notation. OK. Maintenant, avec cela, nous n'avons pas à répéter l'erreur de résultat différents endroits. Nous pouvons simplement utiliser l'erreur, d'accord ? Il s'agit donc de déstructuration d'objets. Maintenant, nous n'avons plus besoin de cette première ligne. Enfin, avant de terminer cette conférence, nous devons apporter une autre modification à ce code. Nous devons donc utiliser cette nouvelle méthode de validation d'un cours dans le gestionnaire de route pour gérer notre requête de publication STTP Donc, copiez-le, c'est notre gestionnaire pour créer un nouveau cours. Nous n'avons donc pas besoin d' utiliser le schéma ici. Nous transférons toute cette logique à notre fonction de validation de cours. Je vais le supprimer et reconstituer le code que nous avons copié à partir de l'autre méthode. Nous appelons donc le cours de validation, utilisons la syntaxe de restructuration des objets, et si vous avez une erreur, nous renvoyons la réponse 400 au client. Enfin, testons notre nouveau point de terminaison pour mettre à jour un cours. Maintenant, dans Postman, nous devons changer le type de cette demande STDP à mettre, modifier l'URL et ajouter un identifiant de cours valide, comme un identifiant de cours Ici, nous avons un objet de cours valide dont le nom est défini comme nouveau cours . Nous recevons donc une réponse 200 qui est réussie et voici le cours mis à jour. Donc, si vous ouvrez un nouvel onglet et envoyez une demande TPG à des cours d'API localisés, vous devriez voir cette liste de nos cours Premier cours, son nom est mis à jour. Parfait. Maintenant, testons les autres scénarios. Et si nous envoyons une pièce d'identité non valide ? Nous dix. Envoyer le cours avec un identifiant donné n'a pas été trouvé, et vous pouvez voir que la réponse est quatre ou quatre, ce qui signifie « introuvable ». Enfin, que se passe-t-il si nous envoyons un identifiant de cours valide mais un objet de cours non valide ? Je vais donc supprimer la propriété name, S qui indique que nous avons une mauvaise demande ou une erreur 400. Et voici le message d'erreur. Le nom est obligatoire. Ensuite, je vais vous montrer comment gérer une demande de suppression SDDP 14. Exécuter correctement les demandes de suppression: Et parmi toutes les opérations CRD que nous avons mises en œuvre, nous les créons, les lisons et les mettons à jour Dans cette conférence, je vais donc vous montrer comment répondre à une demande de suppression HTDP C'est très simple et similaire à ce que nous avons fait jusqu'à présent. Voici donc l'objet de notre application. C'est ce que nous appelons la méthode de suppression. Donnez-lui un chemin qui soit slash API Courses. Et bien sûr, nous avons besoin d'un paramètre car nous travaillons avec un cours spécifique. Ensuite, la demande et la réponse de notre gestionnaire de route sont transmises au bloc Cord. Maintenant, nous devons d'abord rechercher le cours, un cours avec un identifiant donné. S'il n'existe pas, nous devons renvoyer quatre ou quatre. Dans le cas contraire, nous allons le supprimer. Et par convention, renvoyez le même cours, le cours qui a été supprimé. Encore une fois, je vais emprunter du code à d'autres gestionnaires d' itinéraires pour consulter le cours et renvoyer une erreur de quatre sur quatre Permettez-moi de revenir à notre gestionnaire de route pour la demande STP put Ces deux premières lignes servent donc à rechercher le cours et à renvoyer une erreur de quatre sur quatre. Donc, recopiez ces deux lignes ici. C'est notre première partie. Maintenant, pour supprimer un cours, nous devons d'abord trouver l'index de ce cours dans notre tableau de cours. Donc, bien sûr, nous obtenons l'index, nous le stockons dans une constante, puis nous pouvons utiliser la méthode splice, supprimer un objet de notre tableau de cours Donc les cours pointent Splice, on passe à cet index et on supprime un objet Il s'agit donc d'une partie à supprimer. Enfin, nous devons renvoyer la réponse à la réclamation. Donc, réponse qui envoie cet objet de cours. Maintenant, testons cela. Bag in Postman, changeons le texte pour le supprimer. Tout d'abord, je veux envoyer un identifiant de cours non valide, par exemple ten s, afin que nous obtenions une erreur quatre ou quatre, introuvable avec ce message. Parfait. Supprimons maintenant le premier porte-monnaie. Cours avec ID One. Ensuite, nous obtenons le même objet de cours dans la réponse. Et si nous accédons à notre deuxième onglet où nous avons la liste de nos cours, envoyons-la une fois de plus. OK, maintenant, regardez, nous n' avons plus notre premier sac à main. Nous n'avons que des cours avec les numéros deux et trois. C'est bon. Avant d'aller plus loin, examinez le gestionnaire qui répond à la demande de vente En cas d'erreur, une méthode plus courte pour écrire le même code est de mettre le retour ici, et nous n'avons pas besoin d'un bloc de code. Nous pouvons tout mettre sur une seule ligne. Enfin, examinons le gestionnaire de la demande de publication du PIB C'est ici. Encore une fois, je vais utiliser la même technique pour nettoyer ce code. Donc, si nous avons une erreur, nous revenons simplement et nous débarrassons du bruit supplémentaire contenu dans ce code. C'est bien mieux. 15. Projet : application FareWheels: C'est bon. C'est maintenant l' heure de faire de l'exercice. À partir de cette conférence, nous allons donc commencer à créer les services principaux pour notre application Fair Wheels Comme je vous l'ai déjà dit, fair wheels est un service imaginaire de location de voitures. Tout au long de ce cours, nous allons donc construire petit à petit le backend de Fair Wheels. Notre première tâche consiste à créer un service de gestion de la liste des constructeurs ou constructeurs automobiles. Chaque voiture a donc un constructeur comme General Motors, Tesla, Ord, etc. Nous devrions avoir un point de terminaison pour obtenir la liste de toutes les entreprises, car quelque part dans notre application client, nous avons peut-être une liste déroulante permettant à l'utilisateur de sélectionner une entreprise. Nous avons donc besoin d'un point de terminaison pour accéder à toutes les entreprises. Nous devrions également être en mesure d'ajouter une nouvelle entreprise ainsi que mettre à jour ou de supprimer une entreprise existante. Donc, avant d'aller plus loin, je veux que vous mettiez en pratique ce que vous avez appris jusqu'à présent, et ce sera également votre mission. Donc, même si vous êtes un développeur expérimenté, ne dites pas non et ne trouvez même pas d'excuse. Je sais comment faire. C'est tellement simple. Je sais que c'est facile, mais ce qui compte maintenant c'est que je veux que vous vous habituiez à cette syntaxe. Alors allez-y, lancez un nouveau projet à partir de zéro, tout porte ses fruits et créez ce service TDP pour gérer la liste des entreprises