Exercice - Rendre des fonctions RESTful
L’API Products Manager est sur le point de recevoir d’importantes mises à niveau de style, tout cela grâce à vos talents de développeur chez Tailwind Traders. Dans cet exercice, vous allez transformer toutes les fonctions que vous avez créées précédemment en fonctions RESTful en modifiant leurs fichiers de configuration.
Rendre l’itinéraire GetProducts RESTful
Dans Visual Studio Code, ouvrez le fichier
api/src/index.ts
.Dans la définition de l’itinéraire pour GetProducts, limitez la propriété
methods
afin qu’elle contienne uniquement la valeurGET
.methods: ['GET']
Ajoutez la propriété
route
avec une valeur deproducts
pour un itinéraire complet de/api/products
.route: 'products',
La définition de l’itinéraire complet est la suivante :
app.http('GetProducts', { methods: ['GET'], route: 'products', // <- route: /api/products authLevel: 'anonymous', handler: GetProducts });
Enregistrez le fichier.
Notes
L’enregistrement du fichier entraîne l’arrêt et la déconnexion du débogueur par le processus Azure Functions. Ne vous inquiétez pas. Rien n’est cassé. Vous venez simplement d’apporter des changements fondamentaux à la façon dont les fonctions sont servies, ce qui va vous obliger à redémarrer le projet au terme de ce grand nettoyage de printemps avec REST.
Convertir la fonction CreateProduct en fonction RESTful
Toujours dans le fichier
api/src/index.ts
, limitez la propriété autoriséemethods
àPOST
.methods: ['POST']
Ajoutez la propriété
route
avec une valeur deproducts
pour un itinéraire complet de/api/products
.route: 'products',
La définition de l’itinéraire complet est la suivante :
app.http('CreateProduct',{ methods: ['POST'], route: 'products', authLevel: 'anonymous', handler: CreateProduct });
Enregistrez le fichier.
Convertir la fonction UpdateProduct en fonction RESTful
Toujours dans le fichier
api/src/index.ts
, limitez la propriété autoriséemethods
àPUT
.methods: ['PUT'],
Ajoutez la propriété
route
avec une valeur deproducts
pour un itinéraire complet de/api/products
.route: 'products',
La définition de l’itinéraire complet est la suivante :
app.http('UpdateProduct', { methods: ['PUT'], route: 'products', authLevel: 'anonymous', handler: UpdateProduct });
Enregistrez le fichier.
Convertir la fonction DeleteProduct en fonction RESTful
Toujours dans le fichier
api/src/index.ts
, limitez la propriété autoriséemethods
àDELETE
.methods: ['DELETE']
Mettez à jour l’itinéraire pour utiliser l’ID produit comme paramètre d’itinéraire.
route: 'products/{id}',
La définition de l’itinéraire complet est la suivante :
app.http('DeleteProduct', { methods: ['DELETE'], route: 'products/{id}', authLevel: 'anonymous', handler: DeleteProduct });
Enregistrez le fichier.
Démarrer le projet
Appuyez sur F5 pour démarrer le projet Azure Functions.
Notez que les URL de vos points de terminaison de fonction sont maintenant différentes.
Regardez cette belle API. Elle est tout simplement magnifique. Vous pouvez noter que vous avez spécifié exactement la même route pour les fonctions CreateProduct, UpdateProduct et DeleteProduct. Seule la méthode de demande HTTP est différente. Vous avez converti trois URL en une seule, tout en conservant trois points de terminaison. C’est magique !