Contenu
- Présentation
- Création et initialisation du projet
- Créer un serveur simple et une route GET
- Gestionnaires d'itinéraires et de requêtes
- Demande et réponse
- Surveillez les changements
- Créer des itinéraires POST, GET, UPDATE et DELETE
- Clients API
- Corps de la requête, paramètres, requête, en-tête, ...
- Manipulation des données de la mémoire
- Conclusion
Introduction

Les essentiels de JavaScript : partie 7
Michael Otu ・ 2 novembre 2024

Qu'est-ce qu'une API
Michael Otu ・ 24 février 24

Qu'est-ce que l'API REST
Michael Otu ・ 1er mars 24

JavaScript Essentials : Partie 6 (Mastermind en Javascript)
Michael Otu ・ 28 octobre 24

Qu'est-ce que Nodejs
Michael Otu ・ 31 juillet 24

Demande et réponse
Michael Otu ・ 14 mars 24

Qu'est-ce que JSON
Michael Otu ・ 9 mars 24
Dans JavaScript Essentials : Partie 7, j'ai laissé entendre que nous examinerions le développement d'API ([0] [1]) et c'est par là que nous commençons. Nous aurons un avant-goût de ce qu'il faut pour développer une API simple pour suivre les dépenses.
Description du projet
Pour ce suivi des dépenses, nous devrons garder une trace de l'article acheté, du montant et de la date à laquelle l'article a été acheté. Une dépense ressemblera à ceci :
{ "name": "Legion Tower 7i Gen 8 (Intel) Gaming Desktop", "amount": 2099.99, "date": "2024-31-12" }
À ce stade, puisqu'une véritable base de données n'a pas encore été ajoutée, nous pouvons utiliser une liste (un tableau) pour contenir les données que nous allons créer. Dans cet extrait, nous passerons en revue chaque concept majeur entourant la création d'API et ajouterons quelques moyens d'améliorer cette application plus tard.
Sachez que nous allons construire sur ce projet, alors gardez-le propre et explorez, expérimentez, remuez, etc. autant que vous le pouvez.
Création et initialisation du projet
Comme d'habitude, nous avons besoin d'un nouvel environnement de travail pour chaque projet, nous allons donc commencer par créer et initialiser un projet Node JS. Si vous n'êtes pas sûr, consultez JavaScript Essentials : Partie 6 (Mastermind en Javascript).
Maintenant, nous devons créer le dossier parent de notre API en faisant :
# create a folder for the project at the path of your choice mkdir expense-tracker-simple-api # open the project with vscode # code expense-tracker-simple-api code -r expense-tracker-simple-api # open the built-in terminal and init node npm init -y # this should create the package.json file # create the entry file, index.js echo "console.log(\"expense-tracker-simple-api\");" > index.js # run the index.js file node index.js
Tout ce que nous faisons avec ce script est assez direct.
- Nous créons un dossier pour notre projet
- Nous avons ouvert le dossier dans vscode
- Nous avons initialisé un projet nodejs
- Nous avons ajouté un journal de console dans le fichier index.js. Cela crée le fichier et ajoute du contenu
- Nous exécutons le fichier index.js
Une alternative consiste à aller là où vous souhaitez créer ce dossier et à le créer là-bas, puis à ouvrir le dossier dans le projet de nœud vscode et init - consultez JavaScript Essentials : Partie 6 (Mastermind en Javascript).
À ce stade, nous devons installer un package nodejs appelé express. Express est une bibliothèque qui nous aidera à créer nos API.
Nous pouvons installer ce package en exécutant npm i express. Cela devrait modifier le fichier package.json et créer le fichier package-lock.json et le dossier node_modules. Consultez l'extrait, Qu'est-ce que Nodejs, pour plus de compréhension et d'informations sur la façon d'utiliser npm pour installer des packages.
Créer un serveur simple et une route GET
Dans notre fichier index.js, nous pouvons ajouter ce code.
console.log("expense-tracker-simple-api"); // import the express lib const express = require("express"); // create an express application const app = express(); // create a GET request on the base endpoint app.get("/", (req, res) => res.send("Hello world")); // create a server that listens to requests on port 3000 app.listen(3000, () => console.log(`Api running on ${"http://localhost:3000"}`) );
Tout ce que nous avons fait était de créer une application express, d'utiliser l'application pour créer une requête GET pour envoyer un message et de laisser l'application écouter les requêtes provenant du port 3000.
const app = express();
Crée une application express (? voilà comment créer une application express)
app.get("/", (req, res) => res.send("Hello world"));
Nous avons utilisé l'instance d'application express pour créer une requête GET. L'application possède plusieurs méthodes et propriétés qui incluent les méthodes HTTP. Découvrez l'exception des méthodes http ici.
{ "name": "Legion Tower 7i Gen 8 (Intel) Gaming Desktop", "amount": 2099.99, "date": "2024-31-12" }
Nous avons utilisé l'application express pour écouter sur un port et utilisé une fonction flèche pour nous dire, dire aux développeurs, que notre application est en cours d'exécution. Pour le port, nous pouvons le modifier vers un autre port de notre choix. Cependant, certains ports spéciaux sont déjà destinés ou utilisés pour une tâche particulière et ils sont bien connus dans la communauté et en tant que tels serveurs par défaut lorsque de telles applications ou programmes sont exécutés sur notre PC. Découvrez-les - 0 1 2
Remarque : Certains ne sont pas autorisés car votre système les accompagne et d'autres sont fournis avec des applications que nous installons, telles que certains serveurs et bases de données, etc. Ne vous inquiétez pas, lorsque nous utilisons un port déjà utilisé, notre application nous le fera savoir. Tout ce que nous avons à faire est d’en ajouter un ou d’en soustraire un. Pas de sueur.
Gestionnaires d’itinéraires et de requêtes
Pour créer une requête GET, utilisez app.get(...), pour le POST, utilisez app.post(...) et ainsi de suite. Pour chaque itinéraire que nous souhaitons créer, app.SomeMethod(...), empruntera un itinéraire ou un chemin, indiquant la ressource que le client utilisateur souhaite ou l'action qu'il souhaite exécuter. Dans le cadre de l'itinéraire, cela peut nécessiter au moins un gestionnaire de requêtes. Cela signifie que nous pouvons avoir app.SomeMethod(path, hanlder1, handler2, ..., handlern);.
Pour la requête GET ci-dessus, le chemin ou la route est / (une chaîne) et le gestionnaire de requête unique que nous avons est (req, res) => res.send("Hello world"), une fonction de gestionnaire (un rappel ou une simple fonction fléchée). Les gestionnaires de requêtes peuvent être des middlewares et des contrôleurs.
Demande et réponse
Un gestionnaire de requêtes prend normalement deux arguments, la requête et la réponse, qui sont respectivement abrégés en req et res (vous n'êtes pas obligé de les appeler ainsi mais le premier est toujours une requête et le second est la réponse). La demande contient les données (ou certaines informations) sur qui a fait la demande et ce qu'il veut. La réponse est un moyen de fournir un retour d'information à l'utilisateur qui a fait la demande. Dans ce cas, nous envoyons "Hello world" lorsque le client fait une requête GET au chemin /.
Ici, vous remarquez que le client et l'utilisateur sont interchangeables, dans le sens où l'appareil fait la requête HTTP à notre serveur API et non un utilisateur, comme dans un compte utilisateur.
Habituellement, le gestionnaire de requêtes prendra un troisième argument qui pointera vers le gestionnaire suivant une fois que le gestionnaire précédent aura fait son travail. Nous appelons cela ensuite. Cela ressemble plus ou moins à :
# create a folder for the project at the path of your choice mkdir expense-tracker-simple-api # open the project with vscode # code expense-tracker-simple-api code -r expense-tracker-simple-api # open the built-in terminal and init node npm init -y # this should create the package.json file # create the entry file, index.js echo "console.log(\"expense-tracker-simple-api\");" > index.js # run the index.js file node index.js
L'argument suivant est utile, il pointe vers le gestionnaire de requêtes et parfois il prend un argument, une erreur. Nous implémenterons un gestionnaire d'erreurs pour gérer généralement les erreurs que nous n'avons pas traitées ou les erreurs que nous « transmettons » au gestionnaire de requêtes suivant.
Annulons maintenant le processus nodejs en cours d'exécution (dans le terminal), en utilisant le contrôle c. Puis exécutez-le à nouveau. Cette fois, avec le contenu mis à jour de la section Créer un serveur simple et une route GET, nous devrions voir une sortie dans la console (terminal) similaire à,
{ "name": "Legion Tower 7i Gen 8 (Intel) Gaming Desktop", "amount": 2099.99, "date": "2024-31-12" }
Ouvrez http://localhost:3000 dans le navigateur. Que vois-tu ? Un texte disant : Bonjour tout le monde ?
Surveillez les changements
Rome ne s'est pas construite en un jour comme le dit le proverbe. Il en va de même pour le développement de logiciels. Peut-être que nous voulons dire ici que nous ajouterons progressivement plus de fonctionnalités au fur et à mesure de notre développement et dans ce processus continu, il devient irritant de démarrer et d'arrêter le serveur tout le temps.
Continuez, ajoutez une autre requête GET (itinéraire) avec le chemin /hello et un gestionnaire de requête qui dit quelque chose que vous voudriez dire. Soyez heureux.
Vous devrez redémarrer le serveur (le processus nodejs en cours d'exécution) et visiter http://localhost:3000/hello dans le navigateur pour voir la réponse de ce point de terminaison.
Ceci,GET http://localhost:3000/hello, est un point de terminaison. Vous partagez cela avec les consommateurs d’API. Entre nous, nous disons route, car nous n'avons pas besoin de connaître l'URL complète (y compris le protocole - http, le domaine - localhost, le port - 3000, et chemin - /bonjour). La route est METHOD PATH, plus ou moins, GET /hello.
Sur macOS ou Windows, nous pouvons faire node --watch index.js ou nous pouvons rechercher des modifications non seulement dans notre fichier d'entrée mais dans tout le chemin du dossier par, node --watch-path=./ index. js pour surveiller les changements dans le chemin du fichier ainsi que dans le fichier lui-même.
Actuellement, voici le contenu de mon fichier package.json :
# create a folder for the project at the path of your choice mkdir expense-tracker-simple-api # open the project with vscode # code expense-tracker-simple-api code -r expense-tracker-simple-api # open the built-in terminal and init node npm init -y # this should create the package.json file # create the entry file, index.js echo "console.log(\"expense-tracker-simple-api\");" > index.js # run the index.js file node index.js
Nous pouvons ajouter un script appelé dev dans la section script.
console.log("expense-tracker-simple-api"); // import the express lib const express = require("express"); // create an express application const app = express(); // create a GET request on the base endpoint app.get("/", (req, res) => res.send("Hello world")); // create a server that listens to requests on port 3000 app.listen(3000, () => console.log(`Api running on ${"http://localhost:3000"}`) );
Nous pouvons arrêter le serveur en cours d'exécution avec control c et maintenant exécuter npm run dev. Cela surveillera les modifications enregistrées dans nos fichiers et rechargera le serveur.
Donc, si cela ne fonctionne pas pour vous, nous avons une alternative. Nous allons installer nodemone, npm et nodemon -g. Nous l'utiliserions partout comme outil utilitaire afin de ne pas avoir à l'installer dans le cadre de nos packages. Nous pouvons observer les changements en exécutant nodemon index.js. Il y a des cas où cela ne fonctionnera pas et quand cela ne fonctionnera pas, dom nodemon --exec node index.js
Nous pouvons modifier notre script de développement pour utiliser nodemon en,
const app = express();
À ce stade, vous pouvez librement modifier vos fichiers .js et lors de la sauvegarde, le serveur redémarrera pour recharger les modifications de charge appliquées.
Créer des itinéraires POST, GET, UPDATE, DELETE
Nous avons déjà créé une requête GET. Dans cette section, nous examinerons brièvement la signification de chaque méthode puisque nous en avons longuement discuté dans Requête et réponse.
Dans cette application, nous ne proposons qu'un seul type de ressource à nos clients, à savoir les dépenses. En supposant que nous desservons plusieurs ressources, nous regrouperons les demandes sous chaque ressource.
Disons que nous avons des utilisateurs et des dépenses, nous avons GET, POST, PUT, DELETE, etc. pour les utilisateurs et les dépenses.
Pour l'instant, nous utiliserions la route /expenditures pour représenter la ressource de dépense.
GET : Cela signifie que nous allons créer un itinéraire pour lister, tout obtenir, tout récupérer, etc. les enregistrements dont nous disposons sur les dépenses. Nous pouvons avoir une requête GET qui récupère l’un des enregistrements. Nous avons créé un GET similaire
POST : La méthode post est souvent utilisée pour créer des ressources
PUT : La méthode put permet de mettre à jour les recours
DELETE : La méthode delete est utilisée pour supprimer la ressource
Nous pouvons maintenant ajouter les lignes de code suivantes au fichier index.js mais au-dessus de app.listen(3000,...).
{ "name": "Legion Tower 7i Gen 8 (Intel) Gaming Desktop", "amount": 2099.99, "date": "2024-31-12" }
Lorsque vous enregistrez votre fichier, remarquez-vous les journaux dans le terminal ? Testez la route GET pour la dépense dans le navigateur.
Nous ne pouvons exécuter les requêtes GET que dans le navigateur. Nous discuterons ensuite des clients API.
Clients API
Un client API dans ce contexte est un outil, un programme ou une application utilisé pour interagir (consommer, intégrer ou tester) des API. Les plus couramment utilisés sont Postman, Insomnia, curl, etc...
Dans vscode et à côté de certains autres IDE, il existe une extension qui fournit des extensions aux clients API. vscode possède d'ailleurs certaines de ces extensions. Cependant, nous envisagerons un client API appelé REST Client. Pour notre cas d'utilisation, il sera plus simple d'utiliser Rest Client en tant que tel, ne vous inquiétez pas. Nous sommes couverts.
Remarque : Postman ou tout autre client API de votre choix peut être utilisé
Comment utiliser le client REST
- Tout d'abord, installez le client REST.
- Nous créons une requête HTTP en tant que telle, nous pouvons créer un fichier avec l'extension .http ou .rest - touchez dépenses-tracker-api.http
- Dans dépenses-tracker-api.http nous pouvons définir notre demande
- Pour créer une requête GET, ajoutez ce qui suit au fichier .http
{ "name": "Legion Tower 7i Gen 8 (Intel) Gaming Desktop", "amount": 2099.99, "date": "2024-31-12" }
- Le point de terminaison est transmis comme indiqué ci-dessus. Pour une publication, placez ou supprimez une demande de mise à jour du point de terminaison. Vous vous souvenez de la différence entre un point final et un itinéraire ?
- Pour une requête qui nécessite que les données soient transmises à l'API, nous pouvons transmettre les données dans le cadre de la route en tant que paramètre ou requête de chaîne, ou nous pouvons les transmettre dans le corps.
# create a folder for the project at the path of your choice mkdir expense-tracker-simple-api # open the project with vscode # code expense-tracker-simple-api code -r expense-tracker-simple-api # open the built-in terminal and init node npm init -y # this should create the package.json file # create the entry file, index.js echo "console.log(\"expense-tracker-simple-api\");" > index.js # run the index.js file node index.js
- Content-Type : application/json est une valeur-clé d'en-tête. Cela signifie que c'est ainsi que vous transmettez les en-têtes à l'aide de rest-client.
- Pour le corps de la requête, nous le transmettons comme objet json - une nouvelle ligne est cependant attendue entre les en-têtes et le corps
- Chaque demande peut être séparée par trois signes de livre ou de frêne, ###. Un texte peut être ajouté à la fin de ### pour donner l'impression qu'il s'agit d'un titre.
console.log("expense-tracker-simple-api"); // import the express lib const express = require("express"); // create an express application const app = express(); // create a GET request on the base endpoint app.get("/", (req, res) => res.send("Hello world")); // create a server that listens to requests on port 3000 app.listen(3000, () => console.log(`Api running on ${"http://localhost:3000"}`) );
À titre d'exercice, créez la demande pour les points finaux de dépenses. Référez-vous lorsque vous rencontrez des difficultés. Nous avons encore beaucoup à faire.
Corps de la requête, paramètres, requête, en-tête
À ce stade, je n'ai pas à souligner que nous utiliserions JSON pour communiquer avec notre API à l'aide du client API.
Comme mentionné précédemment, nous pouvons transmettre des données à notre API en utilisant le corps, l'en-tête ou l'URL de notre requête. Nous avons vu comment transmettre des données via le corps de la requête et l'en-tête (nous examinerons la transmission de certaines données spécifiques ultérieurement). Vérifiez la requête POST créée. Ce que nous n'avons pas examiné, c'est comment transmettre des données dans le cadre de l'URL.
Disons que nous voulons lire une dépense qui a un identifiant de 4, nous pouvons transmettre l'ajout d'un paramètre (dans le cadre de l'URL) sous la forme /dépenses/2. Pour la requête qui traitera cette exigence, nous faisons /expenditures/:id, où :id fait référence à l'identifiant de la dépense. En supposant qu'il s'agisse d'autre chose qu'un identifiant, disons un nom, alors nous ferions :name. Express traitera cela et nous fournira un moyen d'extraire cette valeur sans effort.
Maintenant, pour une chaîne de requête, l'idée est similaire aux paramètres de requête cependant, elle vient après une question, suivie d'un key1=value1&key2=value2...&keyN=valueN, où la clé est l'identifiant de la valeur que vous veux passer. Un exemple très direct est l'URL du client REST, https://marketplace.visualstudio.com/items?itemName=humao.rest-client. Le point d'interrogation marque le début de la chaîne de requête et tout ce qui le suit mappe une clé à une valeur. Par exemple : ?itemName=humao.rest-client.
Ce sera le bon moment pour tester tous vos points de terminaison API et expérimenter en jouant avec.
Corps de la demande
Nous allons maintenant traiter une requête qui transmet des données à l'aide du corps de la requête - Le point de terminaison POST.
{ "name": "Legion Tower 7i Gen 8 (Intel) Gaming Desktop", "amount": 2099.99, "date": "2024-31-12" }
L'objet de la requête a une propriété, body, et sur cette propriété, se trouvent les valeurs que nous avons transmises dans le corps de notre requête - req.body.
C'est la requête qui sera en cours d'exécution.
# create a folder for the project at the path of your choice mkdir expense-tracker-simple-api # open the project with vscode # code expense-tracker-simple-api code -r expense-tracker-simple-api # open the built-in terminal and init node npm init -y # this should create the package.json file # create the entry file, index.js echo "console.log(\"expense-tracker-simple-api\");" > index.js # run the index.js file node index.js
Il s'agit de notre implémentation de point de terminaison qui enregistrera simplement le corps de la requête dans la console.
console.log("expense-tracker-simple-api"); // import the express lib const express = require("express"); // create an express application const app = express(); // create a GET request on the base endpoint app.get("/", (req, res) => res.send("Hello world")); // create a server that listens to requests on port 3000 app.listen(3000, () => console.log(`Api running on ${"http://localhost:3000"}`) );
Que s'est-il passé ? Nous avons eu la réponse habituelle mais... undefined a été enregistré dans la console. Eh bien, cela signifie que tout va bien, cependant, notre serveur API ne sait pas qu'il doit analyser le contenu entrant en tant que JSON. Vous vous souvenez de JSON ?
Ajoutons cette ligne sous const app = express(); ce qui devrait résoudre l'analyse des données entrantes au format json.
const app = express();
Maintenant, testons à nouveau le point de terminaison POST. Qu'as-tu eu cette fois ? Avez-vous obtenu quelque chose de similaire à ceci ?
app.get("/", (req, res) => res.send("Hello world"));
Vous savez maintenant comment obtenir les données du corps. Maintenant comme exercice, déstructurez le corps et passez un objet en réponse. Donc, au lieu de le consigner, renvoyez-le comme réponse.
Paramètre de requête
Nous allons créer un nouveau point de terminaison GET pour lire une dépense par identifiant.
Ce sera notre requête API :
app.listen(3000, () => console.log(`Api running on ${"http://localhost:3000"}`) );
L'objet requête a une propriété, params et sur cette propriété, se trouvent les valeurs que nous avons passées dans le paramètre request de notre requête - req.params.
Maintenant, la mise en œuvre sera similaire à ce que nous avons fait jusqu'à présent mais un peu différente.
app.get("/", (req, res, next) => ...);
Nous pouvons également accéder directement à l'identifiant. J'espère que vous avez remarqué que la clé ou le nom :id transmis dans le cadre de la route correspond à la clé de l'objet enregistré. Essayez de renommer la clé params dans la route et voyez la sortie enregistrée.
Requête de requête (chaîne de requête)
Pour les chaînes de requête, il existe une propriété sur l'objet de requête, query, qui expose les chaînes de requête transmises.
Pour démontrer cela, une chaîne de requête sera transmise pour filtrer les enregistrements à renvoyer. Ce point de terminaison devrait en faire assez.
expense-tracker-simple-api Api running on http://localhost:3000
Maintenant, la mise en œuvre ressemblera à quelque chose de similaire à :
{ "name": "expense-tracker-simple-api", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "description": "", "dependencies": { "express": "^4.21.2" } }
Maintenant, exécutez votre API et vérifiez vos journaux. Expérimentez avec ça.
Manipulation des données de la mémoire
À ce stade, nous ne nous connectons pas encore à une base de données, nous devons donc manipuler les données depuis la mémoire. Ce que nous avons l'intention de faire est de créer un tableau, d'ajouter au tableau, de mettre à jour un élément et de supprimer un élément. Cela semble réalisable en tant que tel, c'est ce que nous allons faire.
Nous allons apporter quelques modifications à du code précédemment écrit, n'hésitez pas à modifier le vôtre également. L'extrait final sera partagé à la fin.
Initialiser les données en mémoire
Créons un tableau de dépenses (données factices) ci-dessous const express = require("express");
{ "name": "Legion Tower 7i Gen 8 (Intel) Gaming Desktop", "amount": 2099.99, "date": "2024-31-12" }
Liste des dépenses
Le point de terminaison actuel renvoie juste un message en utilisant res.send(message) mais ce que nous voulons renvoyer est json. Bien que le .send puisse également contenir un objet ou un json, nous utiliserons res.json(obj).
Je ne l'ai pas mentionné mais le code d'état par défaut renvoyé est 200. L'avez-vous remarqué ? Sauf qu'un autre problème se produit ou qu'il y a un problème avec la demande, le code d'état reste le même. Il y a une section sous les codes d'état, parcourez-la.
Nous pouvons modifier le code d'état en passant le code d'état souhaité dans res.status(desireStatusCode).json(obj). Je conserverai le code de statut 200 tout au long.
Assurez-vous que le serveur est toujours en cours d'exécution
On peut transmettre directement la liste des dépenses.
# create a folder for the project at the path of your choice mkdir expense-tracker-simple-api # open the project with vscode # code expense-tracker-simple-api code -r expense-tracker-simple-api # open the built-in terminal and init node npm init -y # this should create the package.json file # create the entry file, index.js echo "console.log(\"expense-tracker-simple-api\");" > index.js # run the index.js file node index.js
Quelle a été la réponse reçue ? Vérifiez le code d'état ainsi que la charge utile de la réponse.
Par expérience et aussi pour éviter toute ambiguïté, je préfère renvoyer le code d'état 200 par défaut et avoir soit une propriété success, soit un message ou une propriété data pour renvoyer un message ou une ressource demandée. Par défaut, lorsque le statut est faux, le message sera transmis, sinon un message ou des données pourront être transmis.
console.log("expense-tracker-simple-api"); // import the express lib const express = require("express"); // create an express application const app = express(); // create a GET request on the base endpoint app.get("/", (req, res) => res.send("Hello world")); // create a server that listens to requests on port 3000 app.listen(3000, () => console.log(`Api running on ${"http://localhost:3000"}`) );
Nous devons afficher l'identifiant (index de chaque ligne)
const app = express();
Appliquer un filtrage avec
app.get("/", (req, res) => res.send("Hello world"));
Pourquoi le filtre a-t-il été effectué après la cartographie ?
Lire les dépenses
app.listen(3000, () => console.log(`Api running on ${"http://localhost:3000"}`) );
Cette implémentation vous fait-elle allusion à : Pourquoi le filtre a-t-il été effectué après le mappage ? ?
Créer des dépenses
app.get("/", (req, res, next) => ...);
Mettre à jour les dépenses
expense-tracker-simple-api Api running on http://localhost:3000
Supprimer une dépense
{ "name": "expense-tracker-simple-api", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "description": "", "dependencies": { "express": "^4.21.2" } }
Conclusion
Nous avons couvert la racine de la plupart des développements d'API. Ce projet est aussi fondamental que possible. Détendez-vous et regardez à nouveau. Il y a d'autres choses à examiner, comme
- validation
- authentification et autorisation
- intergiciel
- gestion des erreurs
- SQL
- intégration de base de données
Projet de pratique
crud api = créer, lister, lire, mettre à jour et supprimer. C'est ainsi que vous abordez ces problèmes.
Liste de tâches
- objet todo : { id : int, tâche : chaîne, statut : booléen >
- API brute
- Ajoutez un point de terminaison pour marquer toutes les tâches comme terminées, le succès est vrai ou non terminé
Calculatrice
- vous devez décider si vous souhaitez créer un point final pour toutes les opérations (addition, soustraction, multiplication, division)
- ou vous créeriez un seul point de terminaison avec différentes fonctions qui correspondent à chaque opération. L'utilisateur doit pouvoir transmettre l'opérateur et les deux opérandes
Convertisseur de devises
Vous effectuez une conversion d'une devise à une autre. Faites-le pour autant de devises que possible (3 suffisent)
- Convertisseur d'unités - Application Notes - Blog personnel - Application Quiz
Extraits
Sachez que l'excédent a été retiré.
{ "name": "Legion Tower 7i Gen 8 (Intel) Gaming Desktop", "amount": 2099.99, "date": "2024-31-12" }
Demandes API
# create a folder for the project at the path of your choice mkdir expense-tracker-simple-api # open the project with vscode # code expense-tracker-simple-api code -r expense-tracker-simple-api # open the built-in terminal and init node npm init -y # this should create the package.json file # create the entry file, index.js echo "console.log(\"expense-tracker-simple-api\");" > index.js # run the index.js file node index.js
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

La puissance du cadre JavaScript réside dans la simplification du développement, l'amélioration de l'expérience utilisateur et les performances des applications. Lorsque vous choisissez un cadre, considérez: 1. Taille et complexité du projet, 2. Expérience d'équipe, 3. Écosystème et soutien communautaire.

INTRODUCTION Je sais que vous pouvez le trouver étrange, que doit faire exactement JavaScript, C et Browser? Ils semblent sans rapport, mais en fait, ils jouent un rôle très important dans le développement Web moderne. Aujourd'hui, nous discuterons du lien étroit entre ces trois. Grâce à cet article, vous apprendrez comment JavaScript fonctionne dans le navigateur, le rôle de C dans le moteur du navigateur et comment ils fonctionnent ensemble pour stimuler le rendu et l'interaction des pages Web. Nous connaissons tous la relation entre JavaScript et Browser. JavaScript est la langue principale du développement frontal. Il fonctionne directement dans le navigateur, rendant les pages Web vives et intéressantes. Vous êtes-vous déjà demandé pourquoi javascr

Node.js excelle dans des E / S efficaces, en grande partie grâce aux flux. Streams traite les données progressivement, en évitant la surcharge de mémoire - idéal pour les fichiers volumineux, les tâches réseau et les applications en temps réel. Combiner les flux avec la sécurité de type dactylographié crée un powe

Les différences de performance et d'efficacité entre Python et JavaScript se reflètent principalement dans: 1) comme un langage interprété, Python fonctionne lentement mais a une efficacité de développement élevée et convient au développement rapide des prototypes; 2) JavaScript est limité au thread unique dans le navigateur, mais les E / S multi-threading et asynchrones peuvent être utilisées pour améliorer les performances dans Node.js, et les deux ont des avantages dans les projets réels.

JavaScript est originaire de 1995 et a été créé par Brandon Ike, et a réalisé que la langue en langue C. 1.C offre des capacités de programmation élevées et au niveau du système pour JavaScript. 2. La gestion de la mémoire de JavaScript et l'optimisation des performances reposent sur le langage C. 3. La fonctionnalité multiplateforme du langage C aide JavaScript à s'exécuter efficacement sur différents systèmes d'exploitation.

JavaScript s'exécute dans les navigateurs et les environnements Node.js et s'appuie sur le moteur JavaScript pour analyser et exécuter du code. 1) Générer une arborescence de syntaxe abstraite (AST) au stade d'analyse; 2) Convertir AST en bytecode ou code machine à l'étape de compilation; 3) Exécutez le code compilé à l'étape d'exécution.

Les tendances futures de Python et JavaScript incluent: 1. Python consolidera sa position dans les domaines de l'informatique scientifique et de l'IA, 2. JavaScript favorisera le développement de la technologie Web, 3. Le développement de plate-forme multiplié deviendra un sujet brûlant, et 4. L'optimisation des performances sera le focus. Les deux continueront d'étendre les scénarios d'application dans leurs champs respectifs et de faire plus de percées dans les performances.

Les choix de Python et JavaScript dans les environnements de développement sont importants. 1) L'environnement de développement de Python comprend Pycharm, Jupyternotebook et Anaconda, qui conviennent à la science des données et au prototypage rapide. 2) L'environnement de développement de JavaScript comprend Node.js, VScode et WebPack, qui conviennent au développement frontal et back-end. Le choix des bons outils en fonction des besoins du projet peut améliorer l'efficacité du développement et le taux de réussite du projet.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

Dreamweaver CS6
Outils de développement Web visuel

Dreamweaver Mac
Outils de développement Web visuel

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux
