Einleitung: REST API in C# — einfacher als gedacht
Die Entwicklung von Webanwendungen und Microservices ist ohne REST API undenkbar. Wenn Sie gerade erst mit der Programmierung beginnen, kann die Erstellung einer eigenen API wie eine schwierige Aufgabe erscheinen. Mit dem Framework ASP.NET Core in C# können Sie jedoch buchstäblich in 30 Minuten einen funktionierenden RESTful-Dienst schreiben.
In dieser Anleitung erstellen wir Schritt für Schritt eine einfache API zur Verwaltung einer Aufgabenliste (Todo List). Sie erfahren, wie Sie das Projekt einrichten, ein Datenmodell, einen Controller erstellen und die Endpunkte testen. Keine Magie — nur sauberer Code und verständliche Erklärungen.
Am Ende des Artikels haben Sie eine voll funktionsfähige API, die alle grundlegenden CRUD-Operationen (Create, Read, Update, Delete) unterstützt.
Schritt 1: Umgebungsvorbereitung und Projekterstellung
Bevor Sie Code schreiben, stellen Sie sicher, dass die erforderlichen Tools installiert sind:
- .NET SDK (Version 8.0 oder neuer) — herunterladen von der offiziellen Microsoft-Website
- Visual Studio (2022 Community Edition) oder Visual Studio Code mit der C#-Erweiterung
- Postman oder ein anderer REST-Client zum Testen
Öffnen Sie das Terminal (oder die Eingabeaufforderung) und führen Sie den folgenden Befehl aus, um ein neues Web-API-Projekt zu erstellen:
dotnet new webapi -n TodoApicd TodoApiÖffnen Sie nach der Projekterstellung den Ordner TodoApi in Ihrer IDE. Die Projektstruktur enthält mehrere Ordner und Dateien, aber uns interessieren vorerst drei Schlüsselbereiche: Program.cs, Controllers und Models.
Schritt 2: Erstellen des Datenmodells
Ein Modell ist eine Klasse, die die Datenstruktur unserer API beschreibt. Für die Aufgabenliste benötigen wir drei Felder: eine eindeutige ID, einen Namen und einen Erledigungsstatus.
Erstellen Sie einen neuen Ordner Models im Projektstamm und darin eine Datei TodoItem.cs:
namespace TodoApi.Models;
public class TodoItem{ public int Id { get; set; } public string? Name { get; set; } public bool IsComplete { get; set; }}Beachten Sie das Fragezeichen nach string. Es zeigt an, dass die Eigenschaft Name null sein kann. Dies ist eine gute Praxis, um Compiler-Warnungen zu vermeiden.
Schritt 3: Erstellen des Controllers und Implementierung von CRUD
Ein Controller ist eine Klasse, die HTTP-Anfragen verarbeitet. In ASP.NET Core erben Controller von ControllerBase und verwenden Attribute für das Routing.
Erstellen Sie eine Datei TodoItemsController.cs im Ordner Controllers:
using Microsoft.AspNetCore.Mvc;using TodoApi.Models;
namespace TodoApi.Controllers;
[ApiController][Route("api/[controller]")]public class TodoItemsController : ControllerBase{ private static List<TodoItem> _todoItems = new();
// GET: api/TodoItems [HttpGet] public ActionResult<IEnumerable<TodoItem>> GetTodoItems() { return _todoItems; }
// GET: api/TodoItems/1 [HttpGet("{id}")] public ActionResult<TodoItem> GetTodoItem(int id) { var item = _todoItems.FirstOrDefault(t => t.Id == id); if (item == null) return NotFound(); return item; }
// POST: api/TodoItems [HttpPost] public ActionResult<TodoItem> PostTodoItem(TodoItem item) { item.Id = _todoItems.Count + 1; _todoItems.Add(item); return CreatedAtAction(nameof(GetTodoItem), new { id = item.Id }, item); }
// PUT: api/TodoItems/1 [HttpPut("{id}")] public IActionResult PutTodoItem(int id, TodoItem updatedItem) { var existingItem = _todoItems.First