Selam arkadaşlar, bu yazımda Csharp ile Web Api’den Veri Çekme konusundan bahsedeceğim sizlere.
Projelerimiz üzerinde çalışırken bazı durumlarda servisleri kullanmamız gerekir. Bu kullanacağımız servis Web Api ile yapılmış ise bunu da belli başlı bilgileri belirterek ihtiyacımız olan veri çekme, veri ekleme gibi işlemleri gerçekleştirmek durumunda kalabiliriz.
Peki nasıl yapabiliriz bunu hemen örneklendirerek açıklamak istiyorum.
Öncelikle bu işlemleri gerçekleştirmemiz için HttpClient ve NewtonSoft kullanmamız gerekmektedir. Nuget Package Manager üzerinden Newtonsoft.Json paketini yükleyelim. HttpClient visual studio içerisinde gelmektedir. Gelmez ise Add Reference ile bunu ekleyebilirsiniz.
class Program
{
static void Main(string[] args)
{
string apiUrl = "https://jsonplaceholder.typicode.com/posts";
var data = HttpHelper.GetDataFromApi<List<Post>>(apiUrl).Result;
Console.Read();
}
}
public class HttpHelper
{
public static async Task<T> GetDataFromApi<T>(string url)
{
using (var client = new HttpClient())
{
var result = await client.GetAsync(url);
result.EnsureSuccessStatusCode();
string resultContentString = await result.Content.ReadAsStringAsync();
T resultContent = JsonConvert.DeserializeObject<T>(resultContentString);
return resultContent;
}
}
}
public class Post
{
public int UserId { get; set; }
public int Id { get; set; }
public string Title { get; set; }
public string Body { get; set; }
}
Kod örneğinde HttpHelper class’ı oluşturup içerisinde static olarak bir metod tanımı gerçekleştirdim. Bu metod içerisinde HttpClient ile metoda gönderilen url’den dönen JSON datasının oluşturulan Post class’ına çevirmesini sağlamak için ise JsonConvert.DeserializeObject metodunu kullandım. GetDataFromApi metodunu çağırdığım yerde ise List<Post> olarak dönüş tipini belirttim. Daha sonrasında Api’den gelen JSON datası Post classına eşlenerek bir liste haline gelmiştir.
Bu kodun içerisinde Fake Online Rest Server kullanılmıştır. Siz de örnek bir rest api kullanmak isterseniz eğer aşağıda belirteceğim adresten bunu sağlayabilirsiniz.
Fake Online REST server: https://jsonplaceholder.typicode.com
Umarım faydalı olur.
Bir sonraki yazıda görüşmek üzere…
Selamlar hocam, C# ile Post nasıl kullanılır ?
Merhaba, HttpClient nesnesi içerisinde GetAsync metodu olduğu gibi PostAsync, PutAsync, DeleteAsync gibi Post, Put, Delete metodları bulunmaktadır. PostAsync metodunu kullanarak gerekli değerlerini de PostAsync metodunun parametresinde bulunan HttpContent nesnesini oluşturarak bunu kullanabilirsin. Örnek olarak bir class ile verileri alıyorsan bunu Serialize ederek json string’e çevirip sonrasında da StringContent ile gönderim sağlayabilirsin.