Latihan - Menjalankan aplikasi

Selesai

Dalam latihan sebelumnya, Anda menulis kode untuk API tim Anda untuk menerapkan operasi database. Dalam latihan ini, Anda menguji API sekarang setelah tersambung ke database.

Menjalankan API

  1. Di panel terminal, jalankan aplikasi:

    dotnet run
    
  2. 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 nilai awal.
    • Untuk keamanan, nilai parameter tidak digemakan ke konsol. Anda dapat mengubah pengaturan ini dengan menggunakan EnableSensitiveDataLogging.
  3. Gunakan SQLite Explorer untuk menjelajahi database seeded. 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.

  1. 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
    
  2. Untuk membuka URL, pilih URL sambil menahan Ctrl. Browser terbuka ke / lokasi untuk API, yang mengembalikan teks Contoso Pizza management API. Go to /swagger to open the Swagger test UI.

  3. Di bilah alamat browser, tambahkan /swagger ke akhir URL dan pilih Enter.

Menguji operasi CRUD

Dalam langkah-langkah berikut, Anda menggunakan antarmuka pengguna 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.

  1. Minta daftar lengkap pizza:

    1. Di bawah judul Pizza , perluas operasi GET /Pizza dan pilih Coba.
    2. 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 dan toppings null? Hasil ini diharapkan karena dalam PizzaService.GetAll metode , Anda tidak menggunakan Include metode ekstensi untuk menentukan bahwa properti navigasi harus dimuat.

  2. Minta satu pizza:

    1. Gulir ke bawah ke operasi GET /Pizza{id} dan perluas. Lalu pilih Coba.
    2. Di bidang id , masukkan 2 dan pilih Jalankan.

    API menampilkan pizza "Hawaii". Perhatikan bahwa properti sauce dan toppings diisi karena metode PizzaService.GetById menggunakan metode ekstensi Include.

  3. Tambahkan pizza baru:

    1. Gulir ke atas ke operasi POST /Pizza (terletak di antara operasi GET yang baru saja Anda gunakan) dan perluas. Lalu pilih Coba.

    2. Dalam kotak teks Isi permintaan , tempelkan JSON berikut ini:

      {
        "name": "BBQ Beef",
        "sauce": {
          "name": "BBQ",
          "isVegan": false
        },
        "toppings": [
          {
            "name": "Smoked Beef Brisket",
            "calories": 250
          }
        ]
      }
      
    3. Pilih Jalankan.

    API mengembalikan pizza baru dengan properti yang diisi id .

  4. Tambahkan topping lain ke pizza BBQ Beef:

    1. Gulir ke bawah ke operasi PUT /Pizza{id}/addtopping dan perluas. Pilih Coba.
    2. Di bidang id , masukkan 4.
    3. Di bidang toppingId , masukkan 5.
    4. Pilih Jalankan.

    API memperbarui pizza dan mengembalikan kode keberhasilan. Dalam database, rekaman ditambahkan ke PizzaTopping untuk mengaitkan pizza dengan topping.

  5. Ubah saus pada pizza BBQ Beef:

    1. Gulir ke bawah ke operasi PUT /Pizza{id}/updatesauce dan perluas. Pilih Coba.
    2. Di bidang id , masukkan 4.
    3. Di bidang sauceId , masukkan 2.
    4. Pilih Jalankan.

    API memperbarui pizza dan mengembalikan kode keberhasilan. Dalam database, Pizza catatan diperbarui untuk mengaitkan pizza dengan saringan baru.

  6. Kembali ke operasi GET /Pizza{id} dan minta pizza BBQ Beef dengan mengatur bidang id ke 4. Lalu, pilih Jalankan. Perhatikan bahwa sauce properti dan toppings 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
            }
        ]
    }
    
  7. Anda telah menyadari bahwa pizza brisket asap dengan saus Alfredo dan nanas adalah ide yang mengerikan.

    Hapus pizza:

    1. Temukan operasi DELETE /Pizza{id} dan perluas. Pilih Coba.
    2. Di bidang id , masukkan 4.
    3. Pilih Jalankan.

    API menghapus pizza dan mengembalikan kode keberhasilan. Dalam database, Pizza rekaman dan rekaman terkait di PizzaTopping akan dihapus.

  8. 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 . Kemudian jalankan aplikasi lagi.

Bagus sekali! Aplikasi ini berfungsi dengan database Anda sesuai harapan! Di unit berikutnya, Anda akan membuat perancah model entitas dari database yang ada.