Latihan - Membuat proyek API web
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.
Di Visual Studio Code, pilih File>Buka Folder.
Buat folder baru bernama ContosoPizza di lokasi pilihan Anda, lalu pilih Pilih Folder.
Buka terminal terintegrasi dari Visual Studio Code dengan memilih Tampilkan>Terminal dari menu utama.
Di jendela terminal, salin dan tempel perintah berikut:
dotnet new webapi -controllers -f net8.0Perintah 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.csPeriksa 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
Jalankan perintah .NET Core CLI berikut di shell perintah:
dotnet runPerintah 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
localhostaman yang dimulai denganhttps.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: DevelopmentJika 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.Buka browser web dan buka:
https://localhost:{PORT}/weatherforecastAnda 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.
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.
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
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-httpreplPerintah sebelumnya menginstal alat baris perintah .NET HTTP Read-Eval-Print Loop (REPL) yang Anda gunakan untuk membuat permintaan HTTP ke API web.
Hubungkan ke API web dengan menjalankan perintah berikut:
httprepl https://localhost:{PORT}Sebagai alternatif, jalankan perintah berikut kapan saja saat
HttpReplberjalan:connect https://localhost:{PORT}Petunjuk / Saran
HttpReplJika alat memperingatkan Tidak dapat menemukan deskripsi OpenAPI, kemungkinan besar penyebabnya adalah sertifikat pengembangan yang tidak tepercaya.HttpReplmemerlukan sambungan tepercaya. Sebelum dapat melanjutkan, Anda harusmengonfigurasi sistem anda untuk mempercayai sertifikat dev dengandotnet dev-certs https --trustJelajahi titik akhir yang tersedia dengan menjalankan perintah berikut:
lsPerintah sebelumnya mendeteksi semua API yang tersedia di titik akhir yang terhubung dan mencantumkannya, seperti dalam output berikut:
https://localhost:{PORT}/> ls . [] WeatherForecast [GET]Buka titik akhir
WeatherForecastdengan menjalankan perintah berikut:cd WeatherForecastPerintah sebelumnya menunjukkan output API yang tersedia untuk titik akhir
WeatherForecast:https://localhost:{PORT}/> cd WeatherForecast /WeatherForecast [GET]Buat permintaan
GETdiHttpReplmenggunakan perintah berikut:getPerintah sebelumnya membuat permintaan
GETyang 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" }, // .. ]Akhiri sesi
HttpReplsaat dengan menggunakan perintah berikut:exitKembali ke terminal
dotnetdi 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.