Yazılım Mimarileri ve Tasarım Desenleri Üzerine

OData Nedir? GraphQL’den Farkı Nedir?

Merhaba,

Bu içeriğimizde veri kaynaklarını url üzerinden sorgulamamızı ve böylece API’ların yeteneklerini arttırmamızı sağlayan OData(Open Data Protocol) protokolü üzerine konuşuyor olacak ve aynı işi yapan GraphQL ile mukayese ederek değerlendirmede bulunacağız.

OData(Open Data Protocol) Nedir?

OData, url üzerinden veri kaynaklarını sorgulamak ve elde edilecek sonucu özelleştirmek için kullanılan REST ve HTTP tabanlı bir protokoldür. HTTP tabanlı olmasından dolayı tüm sorguları url üzerinden gerçekleştirmektedir. API’lar da elde edilecek verilerin özelleştirilmesi ve ihtiyaç doğrultusunda farklı formatlara büründürülebilmesi için normal durumda farklı endpointlerin geliştirilmesi ihtiyacını ortadan kaldırarak direkt olarak entityler üzerinde sorgulamayı üstlenmekte ve developerların sadece business logic ile ilgilenmesini sağlamaktadır. Böylece çok hızlı bir şekilde veri modellerine ait servisler oluşturulmasına imkan sağlamaktadır.

OData Veri Modeli Nasıldır?

Yapısal olarak istemciden gönderilen sorgu isteği sunucu tarafında işlenerek sonuç üretilmekte ve clienta gönderilmektedir. Ayriyetten istemci tarafından talep edilen metadata belgesi ile OData kullandığı entitylerin detaylarından istemciyi bilgilendirebilmektedir.

OData İle Aynı İşlemi Yapan Popüler GraphQL Arasındaki Farklar Nelerdir?

Esasında ikiside aynı işlemi gerçekleştirmektedir. Lakin bizler burada farklara değinirken ikisi arasındaki artıları ve eksileri baz alarak değerlendirmede bulunacak ve bu değerlendirme neticesinde hangisini tercih etmemiz gerektiğine dair bir yorumda bulunacağız.

Asp.NET Core Web API geliştiricileri için url üzerinden sorgulama yapmak istendiğinde GraphQL yahut OData yapılarından hangisinin tercih edilmesi gerektiğini şu kriterlerle değerlendirebiliriz;

Geliştirici kullanılabilirliği açısından;

Performans açısından;

Ayrıyetten aşağıdaki tablolarda her açıdan yapılan karşılaştırmaları inceleyebilirsiniz.
Standart API

Sorgu Yeteneği

Yüzey Kabiliyeti

Bu karşılaştırmalardan yapacağımız çıkarım neticesinde, Asp.NET Core uygulamalarında CRUD operasyonları için minimum çaba ile veri kaynağına erişim sağlamak istenildiğinde OData tercih edilebilir protokol olacaktır.

Bir sonraki içeriğimizde herhangi bir Asp.NET Core Web API uygulamasına OData entegrasyonunun nasıl gerçekleştirileceğini ele alacağız. O halde şimdilik görüşmek üzere 😉

İlgilenenlerin faydalanması dileğiyle…
İyi çalışmalar…

Mobil sürümden çık