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;

  • GraphQL’e nazaran OData uygulamada daha hızlı ve sade bir entegrasyon gerektirmektedir.
  • OData; filtreleme, sıralama, seçme yahut genişletme talimatlarını GraphQL’e nazaran daha seri bir şekilde desteklemektedir.
  • GraphQL, Asp.NET Core uygulamalarında her sorgu için type, schema, query ve implement resolver(çözümleyici uygulamak) oluşumlarının geliştirilmesini gerektireceğinden dolayı birçok iş yükü getirmektedir.

Performans açısından;

  • Performans kullanılacak yaklaşımdan ziyade yapılacak sorgu mantığına bağlıdır. GrapQL veya OData, artık hangisi olursa olsun her ikisinde de $select operatörü kullanılarak istenilen sorgu üretilebilmekte ve sonuç elde edilebilmektedir.
  • Esasında yapısal olarak GraphQL her ne kadar güçlü olsada her platform yahut mimariye uygun kütüphanesi bulunmadığından dolayı Asp.NET Core uygulamalarında OData daha kullanışlı ve geliştirilebilirdir.

Ayrıyetten aşağıdaki tablolarda her açıdan yapılan karşılaştırmaları inceleyebilirsiniz.
Standart API
OData Nedir? GraphQL’den Farkı Nedir?
Sorgu Yeteneği
OData Nedir? GraphQL’den Farkı Nedir?
Yüzey Kabiliyeti
OData Nedir? GraphQL’den Farkı Nedir?

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…

Bunlar da hoşunuza gidebilir...

2 Cevaplar

  1. 17 Mayıs 2020

    […] önceki OData Nedir? GraphQL’den Farkı Nedir? başlıklı makalemizde OData’nın ne olduğundan ve muadili olan GraphQL’le […]

  2. 27 Mayıs 2020

    […] OData Nedir? GraphQL’den Farkı Nedir? […]

Bir cevap yazın

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

*