.NET-HILFE

OData C# (Wie es für Entwickler funktioniert)

Veröffentlicht 13. August 2024
Teilen Sie:

Das Protokoll für offene Daten (OData) vereinfacht die Erstellung und Nutzung von RESTful APIs in der Microsoft .NET-Entwicklung. Es bietet einen standardisierten Ansatz zur Abfrage und Bearbeitung von Daten durch vertraute CRUD (Erstellen, Lesen, Aktualisieren, Löschen) operationen. In diesem Artikel wird untersucht, wie das Open Data Protocol die API-Entwicklung in .NET rationalisiert, und es werden Beispiele und die wichtigsten Vorteile hervorgehoben. Um mehr über OData zu erfahren, können Sie die quellcode des OData C# auf GitHub.

OData C# (Wie es für Entwickler funktioniert): Abbildung 1 - OData C#- Datenzugriffsprotokoll

Einführung

OData folgt den Standardpraktiken für die Erstellung von RESTful-Web-APIs und verwendet URLs und HTTP-Verben wie GET und POST zur Definition von Operationen. Es stellt Daten mithilfe eines Entitätsdatenmodells dar (EDM) und JSON oder AtomPub für die Nachrichtenkodierung. OData vereinfacht zwar die API-Entwicklung im Vergleich zu GraphQL, bietet aber möglicherweise weniger fortgeschrittene Funktionen.

OData C# (Wie es für Entwickler funktioniert): Abbildung 2 - OData

Vorteile der Verwendung von OData in .NET

  • Standardisierung: OData erzwingt eine einheitliche Methode zur Definition von Entitätsdatenmodellen, zur Bearbeitung von Anfragen und zur Formatierung von Antworten. Dies verringert die Komplexität der Entwicklung und vereinfacht die Integration von Client-Anwendungen.
  • Reichhaltige Abfragemöglichkeiten: OData unterstützt eine einheitliche Art der Abfrage von Daten, um CRUD-Operationen, Filterung ($Filter)sortieren (Aufsteigende Reihenfolge/ Absteigende Reihenfolge)($Bestellung)und Paging ($top,$skip) funktionalitäten, die es den Kunden ermöglichen, bestimmte Datensätze effizient abzurufen.
  • Verbesserte Entwicklererfahrung: Die .NET-Bibliotheken für OData rationalisieren die API-Entwicklung. Entwickler können vorgefertigte Komponenten für das Routing, die Abfrageverarbeitung und die Serialisierung von Daten nutzen, wodurch sich Code-Duplizierung und Entwicklungszeit verringern.
  • Interoperabilität: OData-konforme Clients von verschiedenen Plattformen können nahtlos mit Ihrem .NET-basierten OData-Dienst interagieren und so eine breitere Anwendungsintegration fördern.

Erste Schritte mit OData in dem .NET-Framework

Die .NET-Bibliotheken für OData verbessern die Erfahrung der Entwickler, indem sie effiziente Möglichkeiten zur Bearbeitung von Datensätzen bieten. Es vereinfacht den Aufbau und die Nutzung von RESTful APIs in der .NET-Entwicklung. Es bietet einen standardisierten Ansatz zur Abfrage und Bearbeitung von Daten durch vertraute CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen).

Einrichten von OData in .NET-Projekten

Öffnen Sie zunächst Ihr neues Projekt in Visual Studio. Navigieren Sie dann zum Projektmappen-Explorer, klicken Sie mit der rechten Maustaste auf Ihr Projekt, und wählen Sie "NuGet-Pakete verwalten". Suchen Sie hier nach Microsoft.AspNetCore.OData und installieren Sie es. Die aktuelle OData-Version ist 8.2.5.

Um OData in der NuGet Package Manager Console zu installieren, verwenden Sie den folgenden Befehl.

Install-Package Microsoft.AspNetCore.OData
Install-Package Microsoft.AspNetCore.OData
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

OData C# (Wie es für Entwickler funktioniert): Abbildung 3 - OData installieren

Beispiel: Erstellen eines OData-Dienstes in ASP.NET Core

Lassen Sie uns eine einfache OData-Modellklasse in einer ASP.NET Core-Anwendung erstellen. Im folgenden Code stellt die Klasse eine Liste von Diensten zur Verfügung, die mit der OData-Syntax abgefragt werden können.

public class Service
{
    public int Id { get; set; } 
    public string FirstName { get; set; }
    public decimal Price { get; set; }
}
public class Service
{
    public int Id { get; set; } 
    public string FirstName { get; set; }
    public decimal Price { get; set; }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Beschreibung des Codes

Die Klasse ODataModelBuilder stellt eine grundlegende Datenstruktur in C# zur Verwaltung eines Dienstes dar. Sie enthält drei zusätzliche Eigenschaften. Hier lauten die Eigenschaftsnamen: Id: Ein ganzzahliger Bezeichner für den Dienst. Vorname: Eine Zeichenkette, die den mit dem Dienst verbundenen Vornamen darstellt. Preis: Ein Dezimalwert, der den Preis des Dienstes angibt. Diese Klasse kann als Baustein für die Erstellung komplexerer dienstbezogener Funktionen in der .NET-Entwicklung verwendet werden. Je nach Szenario können wir auch die Eigenschaft Sammlung oder Navigationseigenschaften verwenden.

Hier erfahren Sie, wie Sie einen OData-Controller in einer ASP.NET Core-Anwendung in Visual Studio einrichten können, um eine Liste von Diensten über einen standardisierten OData-Endpunkt bereitzustellen. Das folgende Beispiel veranschaulicht eine grundlegende Implementierung unter Verwendung einer statischen Liste von Diensten und der Aktivierung von OData-Abfragefunktionen in der 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);
    }
}
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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Beschreibung des Codes

Der bereitgestellte Code definiert einen ODataController namens ServiceController in einer ASP.NET Core-Anwendung, der die Abfrage und Bearbeitung von Daten mit dem OData-Protokoll ermöglicht. Es leitet Anfragen an "odata/Service" weiter und stellt eine statische Liste von Service-Objekten bereit, darunter ein Laptop und ein Smartphone. Die Get-Methode, dekoriert mit [EnableQuery]ermöglicht Clients die Durchführung von OData-Abfragen (filtern, Sortieren, Blättern) in der Liste Products und gibt die Ergebnisse als IActionResult für HTTP-GET-Anfragen zurück.

Registrierung von OData-Diensten in der Datei Program.cs

Um OData in eine .NET 6-Anwendung zu integrieren, müssen wir die erforderlichen OData-Pakete installieren und konfigurieren. Dazu gehört die Definition des OData-Modells, die Einrichtung der OData-Middleware und die Konfiguration von Diensten zur Unterstützung von OData-Funktionen wie Filterung, Ordnung und Erweiterung.

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()
    );
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()
    );
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Beschreibung des Codes

Dieser Code konfiguriert die OData-Unterstützung in einer .NET 6-Anwendung. Zunächst werden die erforderlichen Namespaces importiert und eine WebApplicationBuilder-Instanz erstellt. Die GetEdmModel-Methode definiert das OData-Modell unter Verwendung des ODataConventionModelBuilders, der einen Entitätssatz für Dienstentitäten angibt. Die AddOData-Methode wird dann aufgerufen, um OData-Dienste zu konfigurieren, einschließlich der Aktivierung von Select, Filter, Order by, Count, Expand und der Einstellung eines maximalen Top-Wertes von 20 für Abfrageergebnisse. So wird sichergestellt, dass die Anwendung OData-Abfragen effektiv verarbeiten kann.

Die AddOData() methode verwendet das GetEdmModel() methode, die das für die Abfrage verwendete Datenmodell abruft und die Grundlage für einen OData-Dienst bildet. Dieser Dienst verwendet ein abstraktes Datenmodell, das als Entity Data Model (EDM) um die exponierten Daten zu definieren. Die Klasse ODataConventionModelBuilder generiert ein EDM mit Hilfe von Standard-Namenskonventionen und minimiert so die Anforderungen an den Code. Alternativ können Entwickler die ODataModelBuilder-Klasse verwenden, um mehr Kontrolle über den EDM zu erhalten.

Screenshot des Codes

OData C# (Wie es für Entwickler funktioniert): Abbildung 4 - Code in Visual Studio

Betrieb des Dienstes

Nach der Ausführung des Dienstes können Sie den Dienst mit verschiedenen OData-Abfrageoptionen abfragen, z. B:

https://localhost:7131/odata/Service
https://localhost:7131/odata/Service
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Ausgabe des Programms

OData C# (Wie es für Entwickler funktioniert): Abbildung 5 - OData Service Ausgabe

Einführung in IronPDF

IronPDF ist eine umfassende C#-Bibliothek, die zur Vereinfachung der erstellung, manipulationund rendering von PDF-Dokumenten in .NET-Anwendungen. Es bietet eine breite Palette von Funktionen, darunter die Möglichkeit, PDFs aus HTML, CSS, Bildern und JavaScript zu generieren, so dass Entwickler Webinhalte mühelos in hochwertige PDF-Dokumente umwandeln können. Mit seiner intuitiven API und seiner leistungsstarken Rendering-Engine ermöglicht IronPDF Entwicklern die Rationalisierung von PDF-Erzeugungsprozessen und erleichtert die Integration von Funktionen zur dynamischen Dokumentenerzeugung in ihre Anwendungen.

OData C# (Wie es für Entwickler funktioniert): Abbildung 6 - IronPDF

Hinzufügen von IronPDF zum Projekt

Um IronPDF in Visual Studio zu installieren, navigieren Sie zur NuGet Package Manager Console und verwenden Sie den folgenden Befehl.

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
VB   C#

PDF-Erzeugung

Um ein PDF-Dokument aus HTML-Inhalten in einer .NET-Anwendung zu generieren, können wir die ChromePdfRenderer-Klasse aus einer Bibliothek wie DinkToPdf oder einer ähnlichen verwenden. Dieses Beispiel zeigt, wie Sie eine PDF-Datei mit den Details eines Mitarbeiterdatensatzes erstellen können.

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: {person.FirstName} {person.LastName}</p>");
        pdf.SaveAs("PersonRecord.pdf");
    }
}
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: {person.FirstName} {person.LastName}</p>");
        pdf.SaveAs("PersonRecord.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

In diesem Beispiel wird ein einfacher Mitarbeiter-Datensatz erstellt und dann mit IronPDF ein PDF-Dokument mit dem Namen der Person erzeugt. Es zeigt, wie nahtlos sich C#-Datensätze in die PDF-Erzeugung von .NET-Anwendungen integrieren lassen.

OData C# (Wie es für Entwickler funktioniert): Abbildung 7 - PDF-Ausgabe

Schlussfolgerung

OData vereinfacht die Entwicklung und Nutzung von RESTful-APIs in .NET, indem es standardisierte Abfrage- und Manipulationsfunktionen bereitstellt. Wir können es auch in Entity Framework integrieren, um die Entwicklungseffizienz durch Vereinfachung des Datenzugriffs und der Datenverwaltung zu steigern. OData rationalisiert die API-Entwicklung und ermöglicht eine nahtlose Integration und Interoperabilität über verschiedene Plattformen hinweg mit seinen umfangreichen Abfragefunktionen und der verbesserten Erfahrung für Entwickler. In Bezug auf IronPDF für umfassende Funktionen und Unterstützung.

< PREVIOUS
StyleCop C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
IdentityServer .NET (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >