API erstellen mit OData 8.0

API erstellen mit OData 8.0

01 Jul 2023 - Matthias Voigt

Das Erstellen einer API mit OData 8.0 bietet eine leistungsstarke und flexible Möglichkeit, Daten in einer .NET 6-Anwendung bereitzustellen. OData (Open Data Protocol) ist ein standardisiertes Protokoll, das CRUD-Operationen (Create, Read, Update, Delete) sowie Abfragen und Filterung von Daten ermöglicht.

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du die folgenden Voraussetzungen erfüllst:

  1. Visual Studio 2022 oder höher
  2. .NET 6 SDK

Schritt 1: Neues Projekt erstellen

Erstelle ein neues ASP.NET Core-Web-API-Projekt in Visual Studio:

  1. Öffne Visual Studio.
  2. Gehe zu “Datei” > “Neues Projekt”.
  3. Wähle “ASP.NET Core Web API” und klicke auf “Weiter”.
  4. Gib deinem Projekt einen Namen und wähle den Speicherort aus.
  5. Wähle “.NET 6.0 (LTS)” als Ziel-Framework und klicke auf “Erstellen”.

Schritt 2: OData-Pakete installieren

Installiere die erforderlichen OData-Pakete über NuGet. Öffne die Paket-Manager-Konsole und führe die folgenden Befehle aus:

Install-Package Microsoft.AspNetCore.OData

Schritt 3: OData konfigurieren

Konfiguriere OData in der Startup.cs oder Program.cs-Datei deines Projekts. Füge die OData-Services und Routen hinzu:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers()
    .AddOData(options => options.Select().Filter().Expand().Count().OrderBy().SetMaxTop(100)
    .AddRouteComponents("odata", GetEdmModel()));

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}

app.UseRouting();
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
    endpoints.Select().Filter().Expand().Count().OrderBy().MaxTop(100);
    endpoints.MapODataRoute("odata", "odata", GetEdmModel());
});

app.Run();

IEdmModel GetEdmModel()
{
    var odataBuilder = new ODataConventionModelBuilder();
    odataBuilder.EntitySet<Product>("Products");
    return odataBuilder.GetEdmModel();
}

Schritt 4: Beispiel-Controller erstellen

Erstelle einen Beispiel-Controller, der OData verwendet. Hier ein Beispiel für einen einfachen Produkt-Controller:

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OData.Routing.Controllers;
using System.Collections.Generic;
using System.Linq;

public class ProductsController : ODataController
{
    private static IList<Product> _products = new List<Product>
    {
        new Product { Id = 1, Name = "Product 1", Price = 10 },
        new Product { Id = 2, Name = "Product 2", Price = 20 },
        new Product { Id = 3, Name = "Product 3", Price = 30 },
    };

    [EnableQuery]
    public IActionResult Get()
    {
        return Ok(_products);
    }

    [EnableQuery]
    public IActionResult Get(int key)
    {
        var product = _products.FirstOrDefault(p => p.Id == key);
        if (product == null)
        {
            return NotFound();
        }
        return Ok(product);
    }
}

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

Fazit

Die Integration von OData 8.0 in eine ASP.NET Core-Web-API bietet eine leistungsstarke Möglichkeit, Datenabfragen und CRUD-Operationen zu vereinfachen. Mit wenigen Schritten kannst du eine flexible und erweiterbare API erstellen.

Für weitere Details und eine ausführliche Anleitung besuche den Link zur Quelle.