Alıştırma - Uygulamayı çalıştırma
Ö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
Terminal bölmesinde uygulamayı çalıştırın:
dotnet run
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.
- EF Core, yürütürken SQL komutlarını günlük olayları olarak
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.
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
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ürContoso Pizza management API. Go to /swagger to open the Swagger test UI.
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.
Pizzaların tam listesini isteyin:
- Pizza başlığı altında GET /Pizza işlemini genişletin ve Deneyin düğmesini seçin.
- 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
vetoppings
özellikleri neden null? YöntemindePizzaService.GetAll
gezinti özelliklerinin yüklenmesi gerektiğini belirtmek için uzantı yöntemini kullanmadığınızInclude
için bu sonuç beklenir.Tek bir pizza isteyin:
- GET /Pizza/{id} işlemine kadar aşağı kaydırın ve genişletin, ardından Deneyin düğmesini seçin.
- 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ığındanPizzaService.GetById
Include
vetoppings
özelliklerinin doldurulduğunu fark edin.Yeni bir pizza ekleyin:
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.
İ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 } ] }
Yürüt'ü seçin.
API, özelliği doldurulmuş yeni pizzayı
id
döndürür.Barbekü Sığır Eti pizzasına başka bir topping ekleyin:
- PUT /Pizza/{id}/addtopping işlemine kadar aşağı kaydırın ve genişletin, ardından Deneyin düğmesini seçin.
- Kimlik alanına 4 girin.
- toppingId alanına 5 girin.
- 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.Barbekü Sığır Eti pizzasının sosunu değiştirin:
- PUT /Pizza/{id}/updatesauce işlemine kadar aşağı kaydırın ve genişletin, ardından Deneyin düğmesini seçin.
- Kimlik alanına 4 girin.
- sauceId alanına 2 girin.
- 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.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ğunusauce
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 } ] }
Alfredo sosu ve ananaslı füme bir brisket pizzanın berbat bir fikir olduğunu fark etmişsiniz.
Pizzayı silin:
- DELETE /Pizza/{id} işlemini bulun ve genişletin, ardından Deneyin düğmesini seçin.
- Kimlik alanına 4 girin.
- 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ıtlarPizzaTopping
silinir.Ç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.