Latihan - Membuat proyek API web

Selesai

Modul ini menggunakan .NET 8.0 SDK. Pastikan Anda telah menginstal .NET 8.0 dengan menjalankan perintah berikut di terminal perintah pilihan Anda:

dotnet --list-sdks

Output yang mirip dengan contoh berikut muncul:

6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]

Pastikan bahwa versi yang dimulai dengan 8 terdaftar. Jika tidak ada yang tercantum atau perintah tidak ditemukan, instal .NET 8.0 SDK terbaru.

Membuat dan menjelajahi proyek API web

Untuk menyiapkan proyek .NET agar berfungsi dengan API web, kami menggunakan Visual Studio Code. Visual Studio Code dilengkapi dengan terminal terintegrasi yang memudahkan pembuatan proyek baru. Jika tidak ingin menggunakan editor kode lain, Anda dapat menjalankan perintah dalam modul ini di terminal.

  1. Di Visual Studio Code, pilih File>Buka Folder.

  2. Buat folder baru bernama ContosoPizza di lokasi pilihan Anda, lalu pilih Pilih Folder.

  3. Buka terminal terintegrasi dari Visual Studio Code dengan memilih Tampilkan>Terminal dari menu utama.

  4. Di jendela terminal, salin dan tempel perintah berikut:

    dotnet new webapi -controllers -f net8.0
    

    Perintah ini membuat file untuk proyek API web dasar yang menggunakan pengontrol, bersama dengan file proyek C# bernama ContosoPizza.csproj yang mengembalikan daftar prakiraan cuaca. Jika Anda mendapatkan kesalahan, pastikan Anda telah menginstal .NET 8 SDK .

    Penting

    Secara default, proyek API web diamankan dengan https. Jika Anda mengalami masalah, konfigurasikan sertifikat pengembangan ASP.NET Core HTTPS.

    Anda mungkin menerima permintaan dari Visual Studio Code agar menambahkan aset untuk men-debug proyek. Pilih Ya dalam dialog.

    Perintah ini menggunakan templat proyek ASP.NET Core alias webapi untuk membuat perancah proyek API web berbasis C#. Direktori ContosoPizza dibuat. Direktori ini berisi proyek ASP.NET Core yang berjalan di .NET. Nama proyek cocok dengan nama direktori ContosoPizza.

    Anda sekarang harus memiliki akses ke file dan direktori ini:

    -| Controllers
    -| obj
    -| Properties
    -| appsettings.Development.json
    -| appsettings.json
    -| ContosoPizza.csproj
    -| ContosoPizza.http
    -| Program.cs
    -| WeatherForecast.cs
    
  5. Periksa file dan direktori berikut:

    Nama Deskripsi
    Controllers/ Berisi kelas dengan metode publik yang diekspos sebagai titik akhir HTTP.
    Program.cs Mengonfigurasi layanan dan alur permintaan HTTP aplikasi, dan berisi titik masuk terkelola aplikasi.
    ContosoPizza.csproj Berisi metadata konfigurasi untuk proyek.
    ContosoPizza.http Berisi konfigurasi untuk menguji REST API langsung dari Visual Studio Code.

Membangun dan menguji API web

  1. Jalankan perintah .NET Core CLI berikut di shell perintah:

    dotnet run
    

    Perintah sebelumnya:

    • Menemukan file proyek di direktori saat ini.
    • Mengambil dan memasang semua dependensi proyek yang diperlukan untuk proyek ini.
    • Mengompilasi kode proyek.
    • Meng-host API web dengan server web ASP.NET Core Kestrel di titik akhir HTTP dan HTTPS.

    Port dari 5000 hingga 5300 dipilih untuk HTTP, dan dari 7000 hingga 7300 untuk HTTPS, saat proyek dibuat. Anda dapat dengan mudah mengubah port yang Anda gunakan selama pengembangan dengan mengedit file launchSettings.json proyek. Modul ini menggunakan URL localhost aman yang dimulai dengan https.

    Anda harus mendapatkan output yang mirip dengan yang berikut ini, menunjukkan bahwa aplikasi Anda berjalan:

    Building...
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: https://localhost:7294
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:5118 
    info: Microsoft.Hosting.Lifetime[0]
          Application started. Press Ctrl+C to shut down.
    info: Microsoft.Hosting.Lifetime[0]
          Hosting environment: Development        
    

    Jika Anda menjalankan aplikasi ini di komputer Anda sendiri, Anda dapat mengarahkan browser ke tautan HTTPS yang ditampilkan dalam output (dalam kasus sebelumnya, https://localhost:7294) untuk melihat halaman yang dihasilkan. Ingat port ini, karena Anda menggunakannya di seluruh modul tempat {PORT} digunakan.

    Penting

    Periksa output terminal jika Anda menemukan perilaku yang tidak terduga. Jika build gagal atau kesalahan lainnya terjadi, informasi file log akan membantu Anda memecahkan masalah. Saat membuat perubahan pada kode, Anda harus menghentikan API web dengan memilih CTRL+C pada keyboard dan menjalankan ulang perintah dotnet run.

  2. Buka browser web dan buka:

    https://localhost:{PORT}/weatherforecast
    

    Anda akan melihat output JSON yang mirip dengan contoh ini:

    [
        {
        "date": "2021-11-09T20:36:01.4678814+00:00",
        "temperatureC": 33,
        "temperatureF": 91,
        "summary": "Scorching"
        },
        {
        "date": "2021-11-09T20:36:01.4682337+00:00",
        "temperatureC": -8,
        "temperatureF": 18,
        "summary": "Cool"
        },
        // ...
    ]
    

Opsional: Jelajahi dengan .http file

Termasuk dalam proyek adalah ContosoPizza.http, file yang digunakan untuk menguji titik akhir API melalui format standar. .http file didukung di beberapa lingkungan pengembangan terintegrasi (IDEs) termasuk Visual Studio dan di dalam Visual Studio Code dengan ekstensi Klien REST yang diinstal.

  1. Buka file ContosoPizza.http.

    Dalam beberapa IDEs, file ini telah dikonfigurasi sebelumnya dengan variabel @ContosoPizza_HostAddress dan perintah GET memanggil /weatherforecast/ yang menerima aplikasi/json.

  2. Jika ada dalam file Anda, pilih perintah Permintaan Terkirim di atas GET yang mengirim permintaan ke layanan yang sedang berjalan.

    Memanggil perintah ini membuka jendela respons dengan output yang mirip dengan apa yang kita lihat di browser:

    HTTP/1.1 200 OK
    Connection: close
    Content-Type: application/json; charset=utf-8
    Date: Wed, 17 Jan 2024 16:46:40 GMT
    Server: Kestrel
    Transfer-Encoding: chunked
    
    [
        {
            "date": "2024-01-18",
            "temperatureC": -2,
            "temperatureF": 29,
            "summary": "Warm"
        },
        {
            "date": "2024-01-19",
            "temperatureC": 24,
            "temperatureF": 75,
            "summary": "Chilly"
        },
        // ..
    ]
    

Opsional: Menjelajahi API dengan REPL HTTP Baris Perintah

  1. Buka terminal terintegrasi baru dari Visual Studio Code dengan memilih Terminal>Terminal Baru dari menu utama, lalu jalankan perintah berikut:

    dotnet tool install -g Microsoft.dotnet-httprepl
    

    Perintah sebelumnya menginstal alat baris perintah .NET HTTP Read-Eval-Print Loop (REPL) yang Anda gunakan untuk membuat permintaan HTTP ke API web.

  2. Hubungkan ke API web dengan menjalankan perintah berikut:

    httprepl https://localhost:{PORT}
    

    Sebagai alternatif, jalankan perintah berikut kapan saja saat HttpRepl berjalan:

    connect https://localhost:{PORT}
    

    Petunjuk / Saran

    HttpRepl Jika alat memperingatkan Tidak dapat menemukan deskripsi OpenAPI, kemungkinan besar penyebabnya adalah sertifikat pengembangan yang tidak tepercaya. HttpRepl memerlukan sambungan tepercaya. Sebelum dapat melanjutkan, Anda harusmengonfigurasi sistem anda untuk mempercayai sertifikat dev dengan dotnet dev-certs https --trust

  3. Jelajahi titik akhir yang tersedia dengan menjalankan perintah berikut:

    ls
    

    Perintah sebelumnya mendeteksi semua API yang tersedia di titik akhir yang terhubung dan mencantumkannya, seperti dalam output berikut:

    https://localhost:{PORT}/> ls
    .                 []
    WeatherForecast   [GET] 
    
  4. Buka titik akhir WeatherForecast dengan menjalankan perintah berikut:

    cd WeatherForecast
    

    Perintah sebelumnya menunjukkan output API yang tersedia untuk titik akhir WeatherForecast:

    https://localhost:{PORT}/> cd WeatherForecast
    /WeatherForecast    [GET]
    
  5. Buat permintaan GET di HttpRepl menggunakan perintah berikut:

    get
    

    Perintah sebelumnya membuat permintaan GET yang mirip dengan yang masuk ke titik akhir di browser:

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 02 Apr 2021 17:31:43 GMT
    Server: Kestrel
    Transfer-Encoding: chunked
    [
        {
        "date": 4/3/2021 10:31:44 AM,
        "temperatureC": 13,
        "temperatureF": 55,
        "summary": "Sweltering"
        },
        {
        "date": 4/4/2021 10:31:44 AM,
        "temperatureC": -13,
        "temperatureF": 9,
        "summary": "Warm"
        },
        // ..
    ]
    
  6. Akhiri sesi HttpRepl saat dengan menggunakan perintah berikut:

    exit
    
  7. Kembali ke terminal dotnet di menu drop-down di Visual Studio Code. Matikan API web dengan memilih CTRL+C pada keyboarb.

Sekarang setelah Anda membuat API web, kita dapat memodifikasinya untuk memenuhi kebutuhan API web pizza.