.Net Core HttpClient GET Kullanımı #9

Posted by

Merhaba arkadaşlar, bu yazımda sizlere .Net Core HttpClient GET Kullanımı konusundan bahsedeceğim.

API projemizde CRUD işlemlerimizi gerçekleştirdik. Şimdi de yeni bir Console projesi oluşturarak yazdığımız API metotlarımızı kullanarak ürün ve kategori için listeleme, ekleme, silme, güncelleme işlemlerimizi gerçekleştireceğiz. Bu yazıda GET metotlarımızı kullanarak işlemlerimizi sağlayacağız.

Console projemizi oluşturuyoruz.

Program.cs içerisinde metotlarımızı kullanacağız.

Öncelikle ürünlerimizi listelemek için kodumuzu yazacağız. Servis için HttpClient nesnesini kullanarak API isteklerimizi gerçekleştireceğiz.

private static void GetProducts()
{
    using var httpClient = new HttpClient();

    httpClient.BaseAddress = new Uri("http://localhost:5000/");

    var result = httpClient.GetAsync("api/Products").Result;

    var jsonString = result.Content.ReadAsStringAsync().Result;

    var products = JsonSerializer.Deserialize<List<Product>>(jsonString);

    foreach (var product in products)
        Console.WriteLine($"Id: {product.Id} - Name: {product.Name}");
}

GetProducts adında bir metot oluşturduk ve içerisinde kodlarımızı yazdık.

İlk olarak HttpClient nesnesi tanımlamasını sağladık.

HttpClient nesnesindeki BaseAddress‘in değerini servisimizin adresini veriyoruz.

Adresi verdikten sonra da GetAsync metodunu kullanıyoruz. GetAsync metodu da servisimizde istek yapacağız adresi belirtiyoruz. Ürün Listesi için “api/Products” endpoint’ini yazıyoruz. HttpClient nesnesinde Asenkron metodları olduğundan dolayı Async metodundan sonra Result diyoruz. Sonrasında da result değişkenimize gelen değerlerden içeriği okuyacağımızı belirtiyoruz. ReadAsStringAsync metodunu da kullanarak servisten bize dönen Json bilgisini almış oluyoruz. Şimdi de bu Json stringi Deserialize işlemi ile oluşturduğumuz nesnemize çevirmesi işlemini sağlayacağız. Böylelikle products değişkenimiz bir List<Product> olmuş olacak ve servisten gelen Product değerlerini oluşturduğumuz nesneye atamış olacak. Tabiki de servisten dönen Json’da bulunan propertyler ile Product nesnemizdeki property isimlerinin uyuşması gerekmektedir.

Son olarak da döngü ile ürün bilgilerimizi Console ekranına yazdırma işlemini gerçekleştiriyoruz.

Şimdi de kategori listemiz için kodumuzu yazıyoruz.

private static void GetCategories()
{
    using var httpClient = new HttpClient();

    httpClient.BaseAddress = new Uri("http://localhost:5000/");

    var result = httpClient.GetAsync("api/Categories").Result;

    var jsonString = result.Content.ReadAsStringAsync().Result;

    var categories = JsonSerializer.Deserialize<List<Category>>(jsonString);

    foreach (var category in categories)
        Console.WriteLine($"Id: {category.Id} - Name: {category.Name}");
}

Kategori listemiz için de benzer metodumuzu yazıyoruz.

Son olarak bu yazdığımız metotlarımızı da Main metodu içerisinde çağırıyoruz.

static void Main(string[] args)
{
    GetProducts();
    
    Console.WriteLine("-----------");

    GetCategories();

    Console.Read();
}

İşlemlerden sonra çıkan ekran görüntüsü:

Not: Kodlarımızın üzerinden tekrar geçeceğimiz için metotları da bu şekilde oluşturuyorum. Böylelikle düzeltmeleri sağlarken daha anlamlı olacağını düşünüyorum. Düzeltmeleri sağlarken burada kullandığımız asenkron metotlar için de async-await keyword’lerini kullanarak işlemlerimizi gerçekleştiriyor olacağız.

Bir sonraki yazımda yazdığımız Post metodu çağırarak ürün ve kategori ekleme işlemlerini gerçekleştireceğiz.

Görüşmek üzere 🙂

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir