IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

OData C# (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

Protokół Open Data Protocol (OData) upraszcza tworzenie i korzystanie z interfejsów API RESTful w środowisku programistycznym Microsoft .NET. Oferuje on standardowe podejście do wyszukiwania i manipulowania danymi poprzez znane operacje CRUD (Create, Read, Update, Delete). W tym artykułe omówiono, w jaki sposób Open Data Protocol usprawnia tworzenie interfejsów API w środowisku .NET, podając przykłady i podkreślając jego kluczowe zalety. Aby dowiedzieć się więcej o OData, można sprawdzić repozytorium OData C# na GitHubie, gdzie znajduje się kod źródłowy.

OData C# (Jak to działa dla deweloperów): Rysunek 1 - OData C# - Protokół dostępu do danych

OData stosuje standardowe praktyki tworzenia interfejsów API RESTful, wykorzystując adresy URL i czasowniki HTTP, takie jak GET i POST, do definiowania operacji. Przedstawia dane przy użyciu modelu danych encji (EDM) oraz JSON lub AtomPub do kodowania komunikatów. Chociaż OData upraszcza tworzenie interfejsów API w porównaniu z GraphQL, może oferować mniej zaawansowanych funkcji.

OData C# (Jak to działa dla deweloperów): Rysunek 2 - OData

Korzyści z używania OData w .NET

  • Standaryzacja: OData wymusza spójny sposób definiowania modeli danych encji, obsługi żądań i formatowania odpowiedzi. Zmniejsza to złożoność procesu tworzenia oprogramowania i upraszcza integrację aplikacji klienckich.
  • Bogate mozliwosci zapytan: OData obsluguje jednolity sposob zapytan do danych w celu wykonywania operacji CRUD, filtrowania ($filter), sortowania (porzadek rosnacy/malejacy)($orderby) oraz stronicowania ($top, $skip), co pozwala klientom na efektywne pobieranie konkretnych zestawow danych.
  • Lepsze doświadczenia programistów: Biblioteki .NET dla OData usprawniają tworzenie interfejsów API. Programiści mogą wykorzystać gotowe komponenty do routingu, obsługi zapytań i serializacji danych, co pozwala ograniczyć powielanie kodu i skrócić czas tworzenia oprogramowania.
  • Interoperacyjność: Klienci zgodni z OData z różnych platform mogą płynnie współpracować z usługą OData opartą na .NET, co sprzyja szerszej integracji aplikacji.

Pierwsze kroki z OData w platformie .NET Framework

Biblioteki .NET dla OData poprawiają komfort pracy programistów, ułatwiając wydajną obsługę zbiorów danych. Ułatwia tworzenie i korzystanie z interfejsów API RESTful w programowaniu .NET. Oferuje on standardowe podejście do wyszukiwania i manipulowania danymi poprzez znane operacje CRUD (Create, Read, Update, Delete).

Konfiguracja OData w projektach .NET

Zacznij od otwarcia nowego projektu w Visual Studio. Następnie przejdź do Eksploratora rozwiązań, kliknij prawym przyciskiem myszy swój projekt i wybierz opcję "Zarządzaj pakietami NuGet". Wyszukaj Microsoft.AspNetCore.OData i zainstaluj go. Aktualna wersja OData to 8.2.5.

Aby zainstalować OData w konsoli menedżera pakietów NuGet, użyj następującego polecenia.

PM > Install-Package Microsoft.AspNetCore.OData

OData C# (Jak to działa dla deweloperów): Rysunek 3 - Instalacja OData

Przykład: Tworzenie usługi OData w ASP.NET Core

Stwórzmy prostą klasę modelu OData w aplikacji ASP.NET Core. W poniższym kodzie klasa przedstawiona poniżej udostępni listę usług, które można wyszukiwać przy użyciu składni OData.

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

Opis kodu

Klasa Service reprezentuje podstawową strukturę danych w C# do zarządzania usługą. Zawiera trzy właściwości: Id: Identyfikator liczbowy dla usługi. FirstName: Ciąg znakowy reprezentujący imię powiązane z usługą. Price: Wartość dziesiętna określająca cenę usługi. Klasa ta może być wykorzystana jako element budulcowy do tworzenia bardziej złożonej funkcjonalności związanej z usługami w .NET. W zależności od scenariusza możemy również wykorzystać właściwości kolekcji lub nawigacji.

Oto jak skonfigurować kontroler OData w aplikacji ASP.NET Core w Visual Studio, aby udostępnić listę usług za pośrednictwem standardowego punktu końcowego OData. Poniższy przykład ilustruje podstawową implementację wykorzystującą statyczną listę usług i umożliwiającą korzystanie z funkcji zapytań OData w Web API:

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);
    }
}

Opis kodu

Dostarczony kod definiuje ODataController nazwany ServiceController w aplikacji ASP.NET Core, umożliwiający zapytania i manipulację danymi przy użyciu protokołu OData. Przekierowuje żądania do odata/Service i obsługuje statyczną listę obiektów Service, w tym laptop i smartfon. Metoda Get, ozdobiona [EnableQuery], pozwala klientom na wykonywanie zapytań OData (filtrowanie, sortowanie, stronicowanie) na liście Products, zwracając wyniki jako IActionResult dla żądań HTTP GET.

Zarejestruj uslugi OData w Program.cs

Aby zintegrować OData z aplikacją .NET 6, musimy zainstalować i skonfigurować niezbędne pakiety OData. Obejmuje to zdefiniowanie modelu OData, skonfigurowanie oprogramowania pośredniczącego OData oraz skonfigurowanie usług w celu obsługi funkcji OData, takich jak filtrowanie, sortowanie i rozszerzanie.

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()
    );

Opis kodu

Ten kod konfiguruje obsługę OData w aplikacji .NET 6. Najpierw importuje niezbędne przestrzenie nazw i tworzy instancję WebApplicationBuilder. Metoda GetEdmModel definiuje model OData, używając ODataConventionModelBuilder, który określa zestaw encji dla encji Service. Następnie wywoływana jest metoda AddOData w celu skonfigurowania usług OData, w tym włączając możliwość wybierania, filtrowania, sortowania, liczenia, rozwijania i ustawiania maksymalnej górnej wartości 20 dla wyników zapytań. Taka konfiguracja zapewnia, że aplikacja może efektywnie obsługiwać zapytania OData.

Metoda AddOData() wykorzystuje metodę GetEdmModel(), która pobiera model danych używany do zapytań, tworząc podstawę usługi OData. Usługa ta wykorzystuje abstrakcyjny model danych znany jako Model Danych Encji (EDM) do definiowania udostępnianych danych. Klasa ODataConventionModelBuilder generuje EDM za pomocą domyślnych konwencji nazewniczych, minimalizując wymagania dotyczące kodu. Alternatywnie, deweloperzy mogą wykorzystać klasę ODataModelBuilder dla większej kontroli nad EDM.

Zrzut ekranu z kodem

OData C# (Jak to działa dla deweloperów): Rysunek 4 - Kod w Visual Studio

Uruchamianie usługi

Po uruchomieniu usługi można wysyłać do niej zapytania przy użyciu różnych opcji zapytań OData, takich jak:

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

Wynik działania programu

OData C# (Jak to działa dla deweloperów): Rysunek 5 - Wynik usługi OData

Wprowadzenie do IronPDF

IronPDF to kompleksowa biblioteka C# zaprojektowana w celu uproszczenia konwersji plików do formatu PDF, dzielenia stron PDF oraz usuwania stron z plików PDF w aplikacjach .NET. Oferuje szeroki zakres funkcji, w tym możliwość generowania plików PDF z HTML, CSS, obrazów i JavaScript, umożliwiając programistom łatwą transformację treści internetowych w wysokiej jakości dokumenty PDF. Dzięki intuicyjnemu API i potężnemu silnikowi renderowania IronPDF umożliwia programistom usprawnienie procesów generowania plików PDF, ułatwiając integrację funkcji dynamicznego generowania dokumentów z ich aplikacjami.

OData C# (Jak to działa dla deweloperów): Rysunek 6 - IronPDF

Dodawanie IronPDF do projektu

Aby zainstalować IronPDF w Visual Studio, przejdź do konsoli NuGet Package Manager Console i użyj następującego polecenia.

PM > Install-Package IronPdf

Generowanie pliku PDF

Aby wygenerować dokument PDF z treści HTML w aplikacji .NET, możemy użyć klasy ChromePdfRenderer z biblioteki, takiej jak DinkToPdf lub podobnej. Ten przykład pokazuje, jak utworzyć plik PDF zawierający szczegóły rekordu pracownika.

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");
    }
}

W tym przykładzie tworzony jest prosty rekord pracownika, a następnie za pomocą IronPDF generowany jest dokument PDF zawierający imię i nazwisko tej osoby. Pokazuje, jak płynnie rekordy C# mogą integrować się z generowaniem plików PDF w aplikacjach .NET.

OData C# (Jak to działa dla deweloperów): Rysunek 7 - Wynik PDF

Wnioski

OData upraszcza tworzenie i korzystanie z interfejsów API RESTful w środowisku .NET, zapewniając standardowe funkcje wyszukiwania i manipulacji danymi. Możemy również zintegrować go z Entity Framework, zwiększając wydajność programowania poprzez uproszczenie dostępu do danych i zarządzania nimi. OData usprawnia tworzenie interfejsów API, umożliwiając płynną integrację i współdziałanie między różnymi platformami dzięki bogatym funkcjom zapytań i ulepszonemu doświadczeniu programisty. Ponadto IronPDF oferuje kompleksowe funkcje i wsparcie dla zaawansowanej obróbki plików PDF w aplikacjach .NET.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta