Exercice - Exécuter l’application

Effectué

Dans l’exercice précédent, vous avez écrit du code pour l’API de votre équipe afin d’implémenter des opérations de base de données. Dans cet exercice, vous testez l’API que vous avez connectée à la base de données.

Exécuter l’API

  1. Dans le volet du terminal, exécutez l’application :

    dotnet run
    
  2. Inspectez la sortie générée par l’exécution de l’application et notez les informations suivantes :

    • EF Core répercute les commandes SQL en tant qu’événements de journal info au fur et à mesure de leur exécution.
    • Si la base de données n’existe pas encore, les tables et les index sont définis en utilisant des commandes SQL CREATE.
    • Si la base de données n’a pas encore été alimentée, des commandes INSERT sont exécutées pour ajouter les données d’amorçage.
    • Pour des raisons de sécurité, les valeurs des paramètres ne sont pas affichées sur la console. Vous pouvez modifier ce paramètre en utilisant EnableSensitiveDataLogging.
  3. Utilisez SQLite Explorer pour explorer la base de données amorcée. Chaque table contient des données.

Accéder à Swagger

Maintenant que l’API est en cours d’exécution, testez-la pour voir si les opérations fonctionnent comme prévu. L’API est configurée pour utiliser Swagger qui fournira l’interface utilisateur de test. Swagger est un outil qui permet de concevoir, générer, documenter et consommer des services web RESTful.

  1. Dans la sortie qui s’affiche après l’exécution de l’application, recherchez l’URL HTTP où l’application écoute. La sortie doit ressembler à celle-ci :

    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:5200
    
  2. Pour ouvrir l’URL, sélectionnez-la tout en maintenant la touche Ctrl enfoncée. Le navigateur s’ouvre à l’emplacement / de l’API, qui retourne le texte Contoso Pizza management API. Go to /swagger to open the Swagger test UI.

  3. Dans la barre d’adresse du navigateur, ajoutez /swagger à la fin de l’URL et sélectionnez Entrée.

Tester les opérations CRUD

Dans les étapes suivantes, vous allez utiliser l’interface utilisateur Swagger pour tester chacune des opérations de l’API de la même façon qu’une application cliente. Après chaque opération, inspectez la base de données dans SQLite Explorer pour voir les modifications à mesure qu’elles se produisent.

  1. Demandez la liste complète de pizzas :

    1. Sous l'en-tête Pizza, développez l'opération GET /Pizza et sélectionnez le bouton Essayez-le.
    2. Sélectionnez le bouton Exécuter.

    L’API retourne la liste des pizzas au format JSON (sous Response body).

    [
        {
            "id": 1,
            "name": "Meat Lovers",
            "sauce": null,
            "toppings": null
        },
        {
            "id": 2,
            "name": "Hawaiian",
            "sauce": null,
            "toppings": null
        },
        {
            "id": 3,
            "name": "Alfredo Chicken",
            "sauce": null,
            "toppings": null
        }
        ]
    

    Conseil

    Pourquoi les propriétés sauce et toppings sont-elles nulles ? Ce résultat est attendu, car dans la méthode PizzaService.GetAll, vous n'avez pas utilisé la méthode d'extension Include pour spécifier que les propriétés de navigation doivent être chargées.

  2. Demandez une seule pizza :

    1. Faites défiler jusqu'à l'opération GET /Pizza/{id} et développez-la, puis sélectionnez le bouton Essayez-le.
    2. Dans le champ id, saisissez 2, puis sélectionnez Execute.

    L’API retourne la pizza « Hawaïenne  ». Notez que les propriétés sauce et toppings sont remplies, car la méthode PizzaService.GetById utilise la méthode d’extension Include.

  3. Ajoutez une nouvelle pizza :

    1. Faites défiler jusqu’à l’opération POST /Pizza (située entre les opérations GET que vous venez d’utiliser) et développez-la, puis sélectionnez le bouton Essayer.

    2. Dans la zone de texte Request body, collez le code JSON suivant :

      {
        "name": "BBQ Beef",
        "sauce": {
          "name": "BBQ",
          "isVegan": false
        },
        "toppings": [
          {
            "name": "Smoked Beef Brisket",
            "calories": 250
          }
        ]
      }
      
    3. Sélectionnez Exécuter.

    L’API retourne la nouvelle pizza avec la propriété id renseignée.

  4. Ajoutez une autre garniture à la pizza BBQ Beef :

    1. Faites défiler jusqu'à l'opération PUT /Pizza/{id}/addtopping et développez-la, puis sélectionnez le bouton Essayer.
    2. Dans le champ id, entrez 4.
    3. Dans le champ toppingId, entrez 5.
    4. Sélectionnez Exécuter.

    L’API met à jour la pizza et retourne un code de réussite. Dans la base de données, un enregistrement est ajouté à PizzaTopping pour associer la pizza à la garniture.

  5. Changez de sauce de la pizza BBQ Beef :

    1. Faites défiler jusqu'à l'opération PUT /Pizza/{id}/updatesauce et développez-la, puis sélectionnez le bouton Essayez-le.
    2. Dans le champ id, entrez 4.
    3. Dans le champ sauceId, entrez 2.
    4. Sélectionnez Exécuter.

    L’API met à jour la pizza et retourne un code de réussite. Dans la base de données, l’enregistrement Pizza est mis à jour pour associer la pizza à la nouvelle sauce.

  6. Revenez à l'opération GET /Pizza/{id} et demandez la pizza BBQ Beef en définissant le champ id sur 4. Sélectionnez ensuite Execute. Notez que les propriétés sauce et toppings sont renseignées.

    {
        "id": 4,
        "name": "BBQ Beef",
        "sauce": {
            "id": 2,
            "name": "Alfredo",
            "isVegan": false
        },
        "toppings": [
            {
            "id": 5,
            "name": "Pineapple",
            "calories": 75
            },
            {
            "id": 6,
            "name": "Smoked Beef Brisket",
            "calories": 250
            }
        ]
    }
    
  7. Vous avez réalisé qu’une pizza garnie de poitrine fumée avec la sauce Alfredo et de l’ananas était une très bonne idée.

    Supprimez la pizza :

    1. Recherchez l'opération DELETE /Pizza/{id} et développez-la, puis sélectionnez le bouton Essayer.
    2. Dans le champ id, entrez 4.
    3. Sélectionnez Exécuter.

    L’API supprime la pizza et retourne un code de réussite. Dans la base de données, l’enregistrement Pizza et les enregistrements associés dans PizzaTopping sont supprimés.

  8. Dans le terminal avec l’application en cours d’exécution, sélectionnez Ctrl+C pour arrêter l’application en cours d’exécution.

Conseil

Vous pouvez faire des tests avec l’application. Chaque fois que vous souhaitez démarrer avec une nouvelle base de données, arrêtez l’application et supprimez les fichiers ContosoPizza.db, .db-shm et .db-wal. Ensuite, exécutez de nouveau l’application.

Beau travail ! L’application fonctionne avec votre base de données comme prévu ! Dans l’unité suivante, vous générez automatiquement des modèles d’entité à partir d’une base de données existante.