Exercice - Rendre des fonctions RESTful

Effectué

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

  1. Dans Visual Studio Code, ouvrez le fichier api/src/index.ts.

  2. Dans la définition de l’itinéraire pour GetProducts, limitez la propriété methods afin qu’elle contienne uniquement la valeur GET.

    methods: ['GET']
    
  3. Ajoutez la propriété route avec une valeur de products 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
    });
    
  4. 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

  1. Toujours dans le fichier api/src/index.ts, limitez la propriété autorisée methods à POST.

    methods: ['POST']
    
  2. Ajoutez la propriété route avec une valeur de products 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
    });
    
  3. Enregistrez le fichier.

Convertir la fonction UpdateProduct en fonction RESTful

  1. Toujours dans le fichier api/src/index.ts, limitez la propriété autorisée methods à PUT.

    methods: ['PUT'],
    
  2. Ajoutez la propriété route avec une valeur de products 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
    });
    
  3. Enregistrez le fichier.

Convertir la fonction DeleteProduct en fonction RESTful

  1. Toujours dans le fichier api/src/index.ts, limitez la propriété autorisée methods à DELETE.

     methods: ['DELETE']
    
  2. 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
    });
    
  3. Enregistrez le fichier.

Démarrer le projet

  1. Appuyez sur F5 pour démarrer le projet Azure Functions.

  2. Notez que les URL de vos points de terminaison de fonction sont maintenant différentes.

    Capture d’écran du terminal Visual Studio Code montrant les points de terminaison s’exécutant sur de nouvelles routes.

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 !