Alıştırma - Web API'si projesi oluşturma
Bu modülde .NET 8.0 SDK kullanılır. Tercih ettiğiniz komut terminalinde aşağıdaki komutu çalıştırarak .NET 8.0'ın yüklü olduğundan emin olun:
dotnet --list-sdks
Aşağıdaki örneğe benzer bir çıkış görüntülenir:
6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]
ile 8 başlayan bir sürümün listelendiğinden emin olun. Hiçbiri listelenmiyorsa veya komut bulunamazsa en son .NET 8.0 SDK'sını yükleyin.
Web API'si projesi oluşturma ve keşfetme
Web API'siyle çalışacak bir .NET projesi ayarlamak için Visual Studio Code kullanırız. Visual Studio Code, yeni proje oluşturmayı kolaylaştıran tümleşik bir terminal içerir. Kod düzenleyicisi kullanmak istemiyorsanız, bu modüldeki komutları bir terminalde çalıştırabilirsiniz.
Visual Studio Code'da Dosya>Klasör Aç'ı seçin.
Seçtiğiniz konumda ContosoPizza adlı yeni bir klasör oluşturun ve ardından Klasör Seç'i seçin.
Ana menüdenTerminali> seçerek Visual Studio Code'dan tümleşik terminali açın.
Aşağıdaki komutu kopyalayıp terminal penceresine yapıştırın:
dotnet new webapi -controllers -f net8.0Bu komut, denetleyicileri kullanan temel bir web API'si projesinin dosyalarını ve hava durumu tahminlerinin listesini döndüren ContosoPizza.csproj adlı bir C# proje dosyasını oluşturur. Hata alırsanız .NET 8 SDK'sının yüklü olduğundan emin olun.
Önemli
Web API projelerinin güvenliği varsayılan olarak ile
httpssağlanır. Sorun yaşıyorsanız ASP.NET Core HTTPS geliştirme sertifikasını yapılandırın.Visual Studio Code'dan projede hata ayıklamak için varlık ekleme istemi alabilirsiniz. İletişim kutusunda Evet'i seçin.
Komut, C#tabanlı bir web API'si projesinin iskelesini oluşturmak için diğer webapi adıyla ASP.NET Core proje şablonunu kullanır. Bir ContosoPizza dizin oluşturulur. Bu dizin ,NET üzerinde çalışan bir ASP.NET Core projesi içerir. Proje adı ContosoPizza dizin adıyla eşleşir.
Artık şu dosyalara ve dizinlere erişiminiz olmalıdır:
-| Controllers -| obj -| Properties -| appsettings.Development.json -| appsettings.json -| ContosoPizza.csproj -| ContosoPizza.http -| Program.cs -| WeatherForecast.csŞu dosya ve dizinleri inceleyin:
Veri Akışı Adı Açıklama Controllers/ Genel yöntemleri HTTP uç noktaları olarak ortaya konan sınıflar içerir. Program.cs Hizmetleri ve uygulamanın HTTP isteği işlem hattını yapılandırarak uygulamanın yönetilen giriş noktasını içerir. ContosoPizza.csproj Projenin yapılandırma meta verilerini içerir. ContosoPizza.http REST API'lerini doğrudan Visual Studio Code'dan test etmek için yapılandırmayı içerir.
Web API'sini derleme ve test etme
Komut kabuğunda aşağıdaki .NET Core CLI komutunu çalıştırın:
dotnet runYukarıdaki komut:
- Geçerli dizindeki proje dosyasını bulur.
- Bu proje için gerekli tüm proje bağımlılıklarını alır ve yükler.
- Proje kodunu derler.
- Web API'sini hem HTTP hem de HTTPS uç noktasında ASP.NET Core Kestrel web sunucusuyla barındırıyor.
HTTP için 5000 ile 5300 arasında bir bağlantı noktası ve proje oluşturulduğunda HTTPS için 7000 ile 7300 arasında bir bağlantı noktası seçilir. Projenin launchSettings.json dosyasını düzenleyerek geliştirme sırasında kullandığınız bağlantı noktalarını kolayca değiştirebilirsiniz. Bu modül ile başlayan
localhostgüvenlihttpsURL'yi kullanır.Uygulamanızın çalıştığını gösteren aşağıdakine benzer bir çıkış almanız gerekir:
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: DevelopmentBu uygulamayı kendi makinenizde çalıştırıyorsanız, sonuçta elde edilen sayfayı görüntülemek için bir tarayıcıyı çıkışta görüntülenen HTTPS bağlantısına (önceki örnekte,
https://localhost:7294) yönlendirebilirsiniz. Modülün kullanıldığı yerde{PORT}kullandığınız için bu bağlantı noktasını unutmayın.Önemli
Beklenmeyen bir davranışla karşılaşırsanız terminal çıkışını denetleyin. Derleme başarısız olursa veya başka hatalar oluşursa, günlük dosyasının bilgileri sorun gidermenize yardımcı olur. Kodda değişiklik yaparken, klavyede CTRL+C tuşlarını seçip komutu yeniden çalıştırarak web API'sini
dotnet rundurdurmanız gerekir.Bir web tarayıcısı açın ve şuraya gidin:
https://localhost:{PORT}/weatherforecastAşağıdaki örneğe benzer bir JSON çıktısı görmeniz gerekir:
[ { "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" }, // ... ]
İsteğe bağlı: Dosyalarla .http keşfetme
Projeye, API uç noktalarını standart bir biçimde test etmek için kullanılan ContosoPizza.http dosyası dahildir.
.http dosyaları Visual Studio dahil olmak üzere çeşitli Tümleşik geliştirme ortamlarında (IDE' ler) ve REST İstemci uzantısının yüklü olduğu Visual Studio Code içinde desteklenir.
ContosoPizza.http dosyasını açın.
Bazı IDE'lerde, bu dosya @ContosoPizza_HostAddress değişkenleri ve uygulama/json kabul eden /weatherforecast/ çağrısı yapan bir GET komutuyla önceden yapılandırılmıştır.
Dosyanızda varsa, çalışan hizmete istek gönderen GET öğesinin üstündeki Gönderilen İstek komutunu seçin.
Bu komutun çağrılması, tarayıcıda gördüğümüze benzer bir çıkışa sahip bir yanıt penceresi açar:
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" }, // .. ]
İsteğe bağlı: KOMUT Satırı HTTP REPL ile API'leri keşfetme
Ana menüden Terminal>Yeni Terminal'i seçerek Visual Studio Code'dan yeni bir tümleşik terminal açın ve aşağıdaki komutu çalıştırın:
dotnet tool install -g Microsoft.dotnet-httpreplYukarıdaki komut, web API'sine HTTP isteklerinde bulunmak için kullandığınız .NET HTTP Read-Eval-Print Loop (REPL) komut satırı aracını yükler.
Aşağıdaki komutu çalıştırarak web API'sine bağlanın:
httprepl https://localhost:{PORT}Alternatif olarak, çalışırken istediğiniz zaman
HttpReplaşağıdaki komutu çalıştırın:connect https://localhost:{PORT}İpucu
HttpReplAraç OpenAPI açıklaması bulunamıyor uyarısını verirse, bunun en olası nedeni güvenilmeyen bir geliştirme sertifikasıdır.HttpReplgüvenilir bir bağlantı gerektirir. Devam etmeden önce, sisteminizi geliştirme sertifikasına güvenecek şekilde yapılandırmanızgerekirdotnet dev-certs https --trustAşağıdaki komutu çalıştırarak kullanılabilir uç noktaları keşfedin:
lsYukarıdaki komut, bağlı uç noktada bulunan tüm API'leri algılar ve bunları aşağıdaki çıkışta olduğu gibi listeler:
https://localhost:{PORT}/> ls . [] WeatherForecast [GET]WeatherForecastAşağıdaki komutu çalıştırarak uç noktaya gidin:cd WeatherForecastYukarıdaki komut, uç nokta için kullanılabilir API'lerin çıkışını
WeatherForecastgösterir:https://localhost:{PORT}/> cd WeatherForecast /WeatherForecast [GET]aşağıdaki komutu kullanarak içinde
GETbirHttpReplistekte bulunın:getYukarıdaki komut, tarayıcıda uç noktaya gitmek gibi bir
GETistekte bulunur: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" }, // .. ]Aşağıdaki komutu kullanarak geçerli
HttpReploturumu sonlandırın:exitdotnetVisual Studio Code'daki açılan listede terminale dönün. Klavyenizde CTRL+C tuşlarını seçerek web API'sini kapatın.
Web API'sini oluşturduğunuza göre pizza web API'sinin gereksinimlerini karşılayacak şekilde değiştirebiliriz.