IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

OData C# (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

Açık Veri Protokolü (OData), Microsoft .NET geliştirmede RESTful API'lerin oluşturulmasını ve tüketilmesini kolaylaştırır. Verilerin tanıdık CRUD (Oluştur, Oku, Güncelle, Sil) işlemleriyle sorgulanması ve manipüle edilmesi için standart bir yaklaşım sunar. Bu makale, Açık Veri Protokolünün .NET'teki API geliştirmesini nasıl düzenlediğini, örnekler sunarak ve önemli avantajlarını vurgulayarak inceler. OData hakkında daha fazla keşif yapmak için kaynak kodu incelemek üzere OData C# GitHub Deposu'na bakabilirsiniz.

OData C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - OData C#- Veri erişim protokolü

OData, RESTful web API'leri oluşturmak için standart uygulamaları izler ve işlemleri tanımlamak için GET ve POST gibi URL'ler ve HTTP fiilleri kullanır. Verileri Temel Veri Modeli (EDM) ve mesaj kodlaması için JSON veya AtomPub kullanarak temsil eder. OData, GraphQL'e kıyasla API geliştirmesini basitleştirirken, daha az gelişmiş özellik sunabilir.

OData C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - OData

.NET'te OData Kullanmanın Avantajları

  • Standartlaştırma: OData, varlık veri modellerini tanımlamak, istekleri işlemek ve yanıtları biçimlendirmek için tutarlı bir yol önerir. Bu durum geliştirme karmaşıklığını azaltır ve istemci uygulama entegrasyonunu basitleştirir.
  • Zengin Sorgu Yetenekleri: OData, verinin sorgulanması için CRUD işlemlerini gerçekleştiren bir yöntem destekler, filtreleme ($filter), sıralama (Artan/Düşen Sıra)($orderby) ve sayfalama ($top, $skip) işlevselliği sunar, böylece istekte bulunanlar belirli veri setlerini verimli bir şekilde alabilirler.
  • Gelişmiş Geliştirici Deneyimi: .NET kütüphaneleri, OData için API geliştirmeyi kolaylaştırır. Geliştiriciler, yönlendirme, sorgu işleme ve veri serileştirme için önceden oluşturulmuş bileşenlerden yararlanarak kodun yinelemesini ve geliştirme süresini azaltabilir.
  • Uyumluluk: Çeşitli platformlardaki OData uyumlu istemciler, sizin .NET tabanlı OData hizmetinizle sorunsuz bir şekilde etkileşime girebilir, daha geniş uygulama entegrasyonunu teşvik eder.

.NET Framework'te OData ile Başlamak

.NET kütüphaneleri, veri setlerini verimli bir şekilde manipüle etmek için .NET geliştirmede geliştirici deneyimini geliştirir. .NET geliştirmede RESTful API'lerin oluşturulmasını ve tüketilmesini basitleştirir. Verileri tanıdık CRUD işlemleri (Oluştur, Oku, Güncelle, Sil) yoluyla sorgulama ve manipüle etme için bir standart yaklaşım sunar.

.NET Projelerinde OData Kurulumu

Visual Studio'da yeni projenizi açarak başlayın. Ardından Çözüm Gezgini'ne gidin, projenizin üzerine sağ tıklayın ve "NuGet Paketlerini Yönet" seçeneğini seçin. Microsoft.AspNetCore.OData'i arayın ve yükleyin. Mevcut OData sürümü 8.2.5'tir.

NuGet Paket Yöneticisi Konsolu'nda OData'yı kurmak için aşağıdaki komutu kullanın.

PM > Install-Package Microsoft.AspNetCore.OData

OData C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - OData Kurulumu

Örnek: ASP.NET Core'da Bir OData Hizmeti Oluşturma

ASP.NET Core uygulamasında basit bir OData model sınıfı oluşturalım. Aşağıdaki kodda, bu sınıf OData sözdizimini kullanarak sorgulanabilecek bir hizmetler listesi sunar.

public class Service
{
    public int Id { get; set; } 
    public string FirstName { get; set; }
    public decimal Price { get; set; }
}

Kodun Açıklaması

Service sınıfı, C#'te bir servisi yönetmek için temel bir veri yapısı temsil eder. Üç özelliği içerir: Id: Servis için tamsayı bir tanımlayıcı. FirstName: Servisle ilgili adını temsil eden bir string. Price: Servisin fiyatını belirten ondalık bir değer. Bu sınıf, .NET geliştirmesinde daha karmaşık servis ile ilgili işlevsellikler oluşturmak için bir yapı taşı olarak kullanılabilir. Senaryoya bağlı olarak koleksiyon veya gezinme özelliklerini de kullanabiliriz.

Visual Studio'da ASP.NET Core uygulamasında standart bir OData uç noktası aracılığıyla hizmetler listesini sunmak için bir OData denetleyicisi nasıl kurabileceğinizi gösterir. Verilen örnek, statik bir hizmetler listesi kullanarak temel bir uygulamayı ve Web API'de OData sorgulama işlevlerini etkinleştirmeyi gösterir:

using DemoOData.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OData.Query;
using Microsoft.AspNetCore.OData.Routing.Controllers;

namespace DemoOData.Controllers
{
    [Route("odata/[controller]")]
    public class ServiceController : ODataController
    {
        private static readonly List<Service> Products = new List<Service>
        {
            new Service { Id = 1, FirstName = "Laptop", Price = 6239.9M },
            new Service { Id = 2, FirstName = "Smartphone", Price = 2585.9M }
        };

        [HttpGet]
        [EnableQuery]
        public IActionResult Get() => Ok(Products);
    }
}

Kodun Açıklaması

Sağlanan kod, OData protokolünü kullanarak veri sorgulama ve değiştirme olanağı tanıyan bir ODataController adlı bir ASP.NET Core uygulamasında ServiceController tanımlar. Bu, talepleri odata/Service yönlendirir ve bir dizüstü bilgisayar ve bir akıllı telefon da dahil olmak üzere Service nesnelerinden oluşan statik bir liste sunar. Get yöntemi, [EnableQuery] ile dekore edilmiş olup, Müşterilere (filtreleme, sıralama, sayfalama) OData sorgularını Ürünler listesinde yürütme olanağı sağlar; sonuçları HTTP GET istekleri için bir IActionResult olarak geri döndürür.

Program.cs'de OData Hizmetlerini Kaydet

.NET 6 uygulamasına OData'yı entegre etmek için gereken OData paketlerini yüklememiz ve yapılandırmamız gerekir. Bu, OData modelini tanımlama, OData middleware'i kurma ve filtreleme, sıralama ve genişletme gibi OData özelliklerini destekleyecek hizmetleri yapılandırmayı içerir.

using DemoOData.Models;
using Microsoft.AspNetCore.OData;
using Microsoft.OData.Edm;
using Microsoft.OData.ModelBuilder;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

static IEdmModel GetEdmModel()
{
    ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
    builder.EntitySet<Service>("Services");
    return builder.GetEdmModel();
}

builder.Services.AddControllers()
    .AddOData(options => options
        .AddRouteComponents("odata", GetEdmModel())
        .Select()
        .Filter()
        .OrderBy()
        .SetMaxTop(20)
        .Count()
        .Expand()
    );

Kodun Açıklaması

Bu kod, bir .NET 6 uygulamasında OData desteğini yapılandırır. Öncelikle, gerekli ad alanlarını içe aktarır ve bir WebApplicationBuilder örneği oluşturur. GetEdmModel metodu, ODataConventionModelBuilder metoduyla OData modelini tanımlar; bu da Service varlıkları için bir varlık seti belirtir. AddOData metodu, belirli seçimi etkinleştirme, filtreleme, sıralama, sayma, genişletme ve sorgu sonuçları için maksimum 20'ye kadar bir top değeri ayarlama dahil OData servislerini yapılandırmak için çağrılır. Bu kurulum, uygulamanın OData sorgularını etkili bir şekilde ele alabilmesini sağlar.

AddOData() yöntemi, sorgulama için kullanılan veri modelini elde eden GetEdmModel() yöntemini kullanır; bu da bir OData servisi temeli oluşturur. Bu servis, açık veri tanımlamak için Varlık Veri Modeli (EDM) olarak bilinen soyut bir veri modeli kullanır. ODataConventionModelBuilder sınıfı, varsayılan isimlendirme kurallarıyla bir EDM oluşturur ve bu da kod gereksinimlerini en aza indirir. Alternatif olarak, geliştiriciler EDM üzerindeki daha fazla kontrol için ODataModelBuilder sınıfını kullanabilir.

Kodun Ekran Görüntüsü

OData C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - Visual Studio'daki Kod

Hizmeti Çalıştırma

Hizmeti çalıştırdıktan sonra, OData sorgu seçenekleri kullanarak Hizmeti sorgulayabilirsiniz:

https://localhost:7131/odata/Service
Text

Programın Çıkışı

OData C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 5 - OData Servis Çıkışı

IronPDF'ye Giriş

IronPDF, .NET uygulamalarında dosyaların PDF'ye dönüştürülmesi, PDF sayfalarının bölünmesi ve PDF'den sayfa çıkarılması işlemlerini basitleştirmek için tasarlanmış kapsamlı bir C# kütüphanesidir. HTML, CSS, görüntüler ve JavaScript'ten PDF'ler oluşturma yeteneği de dahil olmak üzere çeşitli özellikler sunar, geliştiricilerin web içeriğini yüksek kaliteli PDF belgelerine zahmetsizce dönüştürmesini sağlar. Sezgisel API'si ve güçlü render motoru ile IronPDF, PDF oluşturma süreçlerini düzenler, uygulamalarına dinamik belge oluşturma yeteneklerini kolaylıkla entegre etme olanağı sağlar.

OData C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 6 - IronPDF

Projeye IronPDF Ekleme

IronPDF'i Visual Studio içinde yüklemek için NuGet Paket Yöneticisi Konsolu'na gidin ve aşağıdaki komutu kullanın.

PM > Install-Package IronPdf

PDF Oluşturma

Bir .NET uygulamasında HTML içeriğinden PDF belgesi oluşturmak için DinkToPdf gibi bir kütüphaneden ChromePdfRenderer sınıfını kullanabiliriz. Bu örnek, bir Çalışan kaydının detaylarını içeren bir PDF oluşturmayı gösterir.

public record Employee (string FirstName, string LastName);

class Program
{
    static void Main(string[] args)
    {
        var employee = new Employee("Iron", "Developer");
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {employee.FirstName} {employee.LastName}</p>");
        pdf.SaveAs("PersonRecord.pdf");
    }
}

Bu örnek, basit bir Çalışan kaydı oluşturur ve ardından kişinin adını gösteren bir PDF belgesi oluşturmak için IronPDF kullanır. Bu, .NET uygulamalarında C# kayıtlarının, PDF oluşturma ile nasıl sorunsuz bir şekilde entegre olabildiğini göstermektedir.

OData C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 7 - PDF Çıkışı

Sonuç

OData, .NET'te standartlaştırılmış sorgulama ve manipülasyon yetenekleri sağlayarak RESTful API'lerin geliştirilmesini ve tüketilmesini basitleştirir. Ayrıca, Entity Framework ile entegre edebiliriz, veri erişimi ve yönetimini basitleştirerek geliştirme verimliliğini artırır. OData, API geliştirmeyi kolaylaştırır, çeşitli platformlar arasında sorunsuz entegrasyon ve uyumluluk sağlayan zengin sorgulama işlevsellikleri ve gelişmiş geliştirici deneyimi sunar. Ek olarak, IronPDF, .NET uygulamaları içinde kapsamlı özellikler ve sağlam PDF manipülasyonu desteği sağlar.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez