Kulturzentrum Marstall Ahrensburg und Kurs:Täglich Routing Übungen: Unterschied zwischen den Seiten

Aus ahrensburg.city
(Unterschied zwischen Seiten)
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
Die Seite wurde neu angelegt: „== Moderne MapGet-Syntax (.NET 6+) == <syntaxhighlight lang="csharp"> // Minimal-API: Endpunkte direkt am app-Objekt definieren var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); // GET-Endpoint für /hello app.MapGet("/hello", () => "Hallo Welt!"); // GET-Endpoint mit Parameter app.MapGet("/user/{name}", (string name) => $"Hallo, {name}!"); // GET-Endpoint mit mehreren Parametern app.MapGet("/add/{a:int}/{b:int}", (int a, in…“
 
Zeile 1: Zeile 1:
Das Kulturzentrum Marstall Ahrensburg befindet sich in der Lübecker Straße 8, 22926 Ahrensburg, in der Nähe des Schlosses Ahrensburg. Mo–Fr, 09:00–13:00 Uhr (Vereinssitz).
== Moderne MapGet-Syntax (.NET 6+) ==
* In der Reithalle (Hauptsaal) gibt es eine große Bühne für 280–300 Personen.
* Das Foyer bietet Platz für ca. 40–50 Personen und ist ideal für Stehempfänge oder kleine Ausstellungen.
* Remise (ehemalige Kutschenhalle): kleinere Veranstaltungsfläche für Ausstellungen, Theater, Lesungen oder Workshops.
* Galerie im Marstall: Hier befindet sich eine Galerie für zeitgenössische Kunst, die seit 2000 von der Sparkassen-Kulturstiftung betrieben wird.


==Weblink==
<syntaxhighlight lang="csharp">
https://marstall-ahrensburg.de/
// Minimal-API: Endpunkte direkt am app-Objekt definieren
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
 
// GET-Endpoint für /hello
app.MapGet("/hello", () => "Hallo Welt!");
 
// GET-Endpoint mit Parameter
app.MapGet("/user/{name}", (string name) => $"Hallo, {name}!");
 
// GET-Endpoint mit mehreren Parametern
app.MapGet("/add/{a:int}/{b:int}", (int a, int b) => $"Summe: {a + b}");
 
// POST-Endpoint (als Vergleich)
app.MapPost("/echo", async (HttpContext ctx) =>
{
    using var reader = new StreamReader(ctx.Request.Body);
    var body = await reader.ReadToEndAsync();
    return Results.Text($"Empfangen: {body}");
});
 
app.Run();
</syntaxhighlight>
 
'''Kommentar''': 
* Kein explizites <code>UseRouting</code> und <code>UseEndpoints</code> nötig!
* Routen-Parameter werden direkt als Methodenparameter übergeben (z.B. <code>(string name)</code>).
* Typen (int, string, etc.) dienen als Constraints.
* Für komplexe Logik kann auch ein Lambda mit <code>HttpContext</code> verwendet werden.
 
'''Übung''':  
1. Schreibe einen neuen Endpoint <code>/greet/{vorname}/{nachname}</code>, der <code>Hallo, Vorname Nachname!</code> zurückgibt.
2. Ergänze einen Endpoint, der das aktuelle Datum unter <code>/now</code> ausgibt.
 
----
 
= Vorteile der modernen Form =
* Kürzer, lesbarer, weniger Boilerplate.
* Ideal für kleine APIs und Lernprojekte.
* Alle Constraints, Parameter etc. funktionieren wie gewohnt.

Aktuelle Version vom 24. Juni 2025, 02:43 Uhr

Moderne MapGet-Syntax (.NET 6+)

// Minimal-API: Endpunkte direkt am app-Objekt definieren
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// GET-Endpoint für /hello
app.MapGet("/hello", () => "Hallo Welt!");

// GET-Endpoint mit Parameter
app.MapGet("/user/{name}", (string name) => $"Hallo, {name}!");

// GET-Endpoint mit mehreren Parametern
app.MapGet("/add/{a:int}/{b:int}", (int a, int b) => $"Summe: {a + b}");

// POST-Endpoint (als Vergleich)
app.MapPost("/echo", async (HttpContext ctx) =>
{
    using var reader = new StreamReader(ctx.Request.Body);
    var body = await reader.ReadToEndAsync();
    return Results.Text($"Empfangen: {body}");
});

app.Run();

Kommentar:

  • Kein explizites UseRouting und UseEndpoints nötig!
  • Routen-Parameter werden direkt als Methodenparameter übergeben (z.B. (string name)).
  • Typen (int, string, etc.) dienen als Constraints.
  • Für komplexe Logik kann auch ein Lambda mit HttpContext verwendet werden.

Übung: 1. Schreibe einen neuen Endpoint /greet/{vorname}/{nachname}, der Hallo, Vorname Nachname! zurückgibt. 2. Ergänze einen Endpoint, der das aktuelle Datum unter /now ausgibt.


Vorteile der modernen Form

  • Kürzer, lesbarer, weniger Boilerplate.
  • Ideal für kleine APIs und Lernprojekte.
  • Alle Constraints, Parameter etc. funktionieren wie gewohnt.