Latihan - Menjalankan aplikasi
Dalam latihan sebelumnya, Anda menulis kode untuk API tim Anda untuk menerapkan operasi database. Dalam latihan ini, Anda menguji API yang Anda sambungkan ke database.
Menjalankan API
Di panel terminal, jalankan aplikasi:
dotnet run
Periksa output dari menjalankan aplikasi, dan perhatikan informasi berikut:
- EF Core menggemakan perintah SQL sebagai
info
peristiwa log saat dijalankan. - Jika database belum ada, tabel dan indeks ditentukan dengan menggunakan perintah SQL
CREATE
. - Jika database belum disemai,
INSERT
perintah dijalankan untuk menambahkan data seed. - Untuk keamanan, nilai parameter tidak digaungkan ke konsol. Anda dapat mengubah pengaturan ini dengan menggunakan EnableSensitiveDataLogging.
- EF Core menggemakan perintah SQL sebagai
Gunakan SQLite Explorer untuk menjelajahi database benih. Setiap tabel memiliki data.
Buka Swagger
Sekarang setelah API berjalan, uji API untuk melihat apakah operasi berfungsi seperti yang diharapkan. API dikonfigurasi untuk menggunakan Swagger untuk menyediakan UI pengujian. Swagger adalah alat yang membantu Anda merancang, membangun, mendokumen, dan menggunakan layanan web RESTful.
Dalam output yang muncul setelah Anda menjalankan aplikasi, temukan URL HTTP tempat aplikasi mendengarkan. Output terlihat mirip dengan contoh berikut:
info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5200
Untuk membuka URL, pilih url sambil menahan Ctrl. Browser terbuka ke
/
lokasi untuk API, yang mengembalikan teksContoso Pizza management API. Go to /swagger to open the Swagger test UI.
Di bilah alamat browser, tambahkan
/swagger
ke akhir URL dan pilih Enter.
Menguji operasi CRUD
Dalam langkah-langkah berikut, Anda menggunakan UI Swagger untuk menguji setiap operasi API seperti yang akan dilakukan aplikasi klien. Setelah setiap operasi, periksa database di SQLite Explorer untuk melihat perubahan database saat terjadi.
Minta daftar lengkap pizza:
- Di bawah judul Pizza , perluas operasi GET /Pizza dan pilih tombol Coba .
- Pilih tombol Jalankan.
API mengembalikan daftar pizza sebagai JSON (di bawah Isi respons).
[ { "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 } ]
Tip
Mengapa properti
sauce
dantoppings
null? Hasil ini diharapkan, karena dalamPizzaService.GetAll
metode , Anda tidak menggunakanInclude
metode ekstensi untuk menentukan bahwa properti navigasi harus dimuat.Minta satu pizza:
- Gulir ke bawah ke operasi GET /Pizza/{id} dan perluas, lalu pilih tombol Coba .
- Di bidang id, masukkan 2, lalu pilih Jalankan.
API menampilkan pizza "Hawaii". Perhatikan bahwa properti
sauce
dantoppings
diisi karena metodePizzaService.GetById
menggunakan metode ekstensiInclude
.Tambahkan pizza baru:
Gulir ke atas ke operasi POST /Pizza (terletak di antara operasi GET yang Anda gunakan) dan perluas, lalu pilih tombol Coba .
Dalam kotak teks Isi permintaan , tempelkan JSON berikut ini:
{ "name": "BBQ Beef", "sauce": { "name": "BBQ", "isVegan": false }, "toppings": [ { "name": "Smoked Beef Brisket", "calories": 250 } ] }
Pilih Jalankan.
API mengembalikan pizza baru dengan properti yang diisi
id
.Tambahkan topping lain ke pizza BBQ Beef:
- Gulir ke bawah ke operasi PUT /Pizza/{id}/addtopping dan perluas, lalu pilih tombol Coba .
- Di bidang id, masukkan 4.
- Di bidang toppingId, masukkan 5.
- Pilih Jalankan.
API memperbarui pizza dan mengembalikan kode keberhasilan. Dalam database, catatan ditambahkan ke
PizzaTopping
untuk mengaitkan pizza dengan topping.Ubah saus pada pizza BBQ Beef:
- Gulir ke bawah ke operasi PUT /Pizza/{id}/updatesauce dan perluas, lalu pilih tombol Coba .
- Di bidang id, masukkan 4.
- Di bidang sauceId, masukkan 2.
- Pilih Jalankan.
API memperbarui pizza dan mengembalikan kode keberhasilan. Dalam database, rekaman diperbarui
Pizza
untuk mengaitkan pizza dengan saringan baru.Kembali ke operasi GET /Pizza/{id} dan minta pizza BBQ Beef dengan mengatur bidang id ke 4. Lalu, pilih Jalankan. Perhatikan bahwa
sauce
properti dantoppings
diisi.{ "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 } ] }
Anda baru saja menyadari pizza brisket asap dengan saus Alfredo dan nanas adalah ide yang mengerikan.
Hapus pizza:
- Temukan operasi DELETE /Pizza/{id} dan perluas, lalu pilih tombol Coba.
- Di bidang id, masukkan 4.
- Pilih Jalankan.
API menghapus pizza dan mengembalikan kode keberhasilan. Dalam database,
Pizza
rekaman dan rekaman terkait diPizzaTopping
dihapus.Di terminal dengan aplikasi yang sedang berjalan, pilih Ctrl+C untuk menghentikan aplikasi yang sedang berjalan.
Tip
Anda dapat bereksperimen dengan aplikasi. Setiap kali Anda ingin memulai dengan database baru, hentikan aplikasi dan hapus file ContosoPizza.db, .db-shm, dan .db-wal . Sekarang, jalankan aplikasi lagi.
Bagus sekali! Aplikasi ini berfungsi dengan database Anda sesuai harapan! Di unit berikutnya, Anda membuat perancah model entitas dari database yang sudah ada.