Alıştırma - Uygulamayı çalıştırma

Tamamlandı

Önceki alıştırmada, veritabanı işlemlerini uygulamak için ekibinizin API'sine kod yazdınız. Bu alıştırmada veritabanına bağladığınız API'yi test edin.

API’yi çalıştırma

  1. Terminal bölmesinde uygulamayı çalıştırın:

    dotnet run
    
  2. Uygulamayı çalıştırmanın çıkışını inceleyin ve aşağıdaki bilgileri not edin:

    • EF Core, yürütürken SQL komutlarını günlük olayları olarak info yankılar.
    • Veritabanı henüz yoksa, tablolar ve dizinler SQL CREATE komutları kullanılarak tanımlanır.
    • Veritabanı henüz dağıtılmıyorsa, INSERT tohum verilerini eklemek için komutlar yürütülür.
    • Güvenlik için parametre değerleri konsola yansımaz. EnableSensitiveDataLogging kullanarak bu ayarı değiştirebilirsiniz.
  3. Dağıtılmış veritabanını keşfetmek için SQLite Gezgini'ni kullanın. Her tablonun verileri vardır.

Swagger'a gidin

ARTıK API çalıştığına göre, işlemlerin beklendiği gibi çalışıp çalışmadığını görmek için API'yi test edin. API, test kullanıcı arabirimi sağlamak için Swagger kullanacak şekilde yapılandırılmıştır. Swagger, RESTful web hizmetlerini tasarlamanıza, oluşturmanıza, belgelendirmenize ve kullanmanıza yardımcı olan bir araçtır.

  1. Uygulamayı çalıştırdıktan sonra görüntülenen çıktıda, uygulamanın dinlediği HTTP URL'sini bulun. Çıktı aşağıdaki örneğe benzer:

    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:5200
    
  2. URL'yi açmak için Ctrl tuşunu basılı tutarken url'yi seçin. Tarayıcı, API'nin / konumunu açar ve metni döndürür Contoso Pizza management API. Go to /swagger to open the Swagger test UI.

  3. Tarayıcının adres çubuğunda URL'nin sonuna ekleyin /swagger ve Enter tuşuna basın.

CRUD işlemlerini test edin

Aşağıdaki adımlarda, Swagger kullanıcı arabirimini kullanarak API'nin işlemlerinin her birini bir istemci uygulamasının yapacağı şekilde test edebilirsiniz. Her işlemden sonra, veritabanı değişikliklerini gerçekleştiğinde görmek için SQLite Gezgini'nde veritabanını inceleyin.

  1. Pizzaların tam listesini isteyin:

    1. Pizza başlığı altında GET /Pizza işlemini genişletin ve Deneyin düğmesini seçin.
    2. Yürüt düğmesini seçin.

    API, pizza listesini JSON (Yanıt gövdesi altında) olarak döndürür.

    [
        {
            "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
        }
        ]
    

    İpucu

    sauce ve toppings özellikleri neden null? Yönteminde PizzaService.GetAll gezinti özelliklerinin yüklenmesi gerektiğini belirtmek için uzantı yöntemini kullanmadığınız Include için bu sonuç beklenir.

  2. Tek bir pizza isteyin:

    1. GET /Pizza/{id} işlemine kadar aşağı kaydırın ve genişletin, ardından Deneyin düğmesini seçin.
    2. Kimlik alanına 2 girin ve Yürüt'e tıklayın.

    API, "Hawaii" pizzasını döndürür. sauce yöntemi uzantı yöntemini kullandığından PizzaService.GetById Include ve toppings özelliklerinin doldurulduğunu fark edin.

  3. Yeni bir pizza ekleyin:

    1. POST/Pizza işlemine (kullandığınız GET işlemleri arasında bulunur) yukarı kaydırın ve genişletin, ardından Deneyin düğmesini seçin.

    2. İstek gövdesi metin kutusuna aşağıdaki JSON'ı yapıştırın:

      {
        "name": "BBQ Beef",
        "sauce": {
          "name": "BBQ",
          "isVegan": false
        },
        "toppings": [
          {
            "name": "Smoked Beef Brisket",
            "calories": 250
          }
        ]
      }
      
    3. Yürüt'ü seçin.

    API, özelliği doldurulmuş yeni pizzayı id döndürür.

  4. Barbekü Sığır Eti pizzasına başka bir topping ekleyin:

    1. PUT /Pizza/{id}/addtopping işlemine kadar aşağı kaydırın ve genişletin, ardından Deneyin düğmesini seçin.
    2. Kimlik alanına 4 girin.
    3. toppingId alanına 5 girin.
    4. Yürüt'ü seçin.

    API pizzayı güncelleştirir ve bir başarı kodu döndürür. Veritabanında, pizzayı topping ile ilişkilendirmek için öğesine PizzaTopping bir kayıt eklenir.

  5. Barbekü Sığır Eti pizzasının sosunu değiştirin:

    1. PUT /Pizza/{id}/updatesauce işlemine kadar aşağı kaydırın ve genişletin, ardından Deneyin düğmesini seçin.
    2. Kimlik alanına 4 girin.
    3. sauceId alanına 2 girin.
    4. Yürüt'ü seçin.

    API pizzayı güncelleştirir ve bir başarı kodu döndürür. Veritabanında, kayıt pizzayı Pizza yeni sosla ilişkilendirecek şekilde güncelleştirilir.

  6. GET /Pizza/{id} işlemine dönün ve kimlik alanını 4 olarak ayarlayarak Barbekü Sığır Eti pizzasını isteyin. Ardından Yürüt'e tıklayın. ve toppings özelliklerinin doldurulduğunu sauce fark edin.

    {
        "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. Alfredo sosu ve ananaslı füme bir brisket pizzanın berbat bir fikir olduğunu fark etmişsiniz.

    Pizzayı silin:

    1. DELETE /Pizza/{id} işlemini bulun ve genişletin, ardından Deneyin düğmesini seçin.
    2. Kimlik alanına 4 girin.
    3. Yürüt'ü seçin.

    API pizzayı siler ve bir başarı kodu döndürür. Veritabanında, Pizza içindeki kayıt ve ilişkili kayıtlar PizzaTopping silinir.

  8. Çalışan uygulamanın olduğu terminalde, çalışan uygulamayı durdurmak için Ctrl+C'yi seçin.

İpucu

Uygulamayla denemeler yapabilirsiniz. Yeni bir veritabanıyla başlamak istediğinizde uygulamayı durdurun ve ContosoPizza.db, .db-shm ve .db-wal dosyalarını silin. Ardından uygulamayı yeniden çalıştırın.

Tebrikler! Uygulama veritabanınızla beklendiği gibi çalışıyor! Sonraki ünitede, var olan bir veritabanından varlık modellerini oluşturacaksınız.