| Methode | Adres | Wat het doet |
|---|---|---|
GET |
/resultaten/3 |
geeft het resultaat met id 3 |
De SQL
Vervang weer de SQL:
SELECT cursist, oefening, seconden, fouten, id
FROM resultaten
WHERE id = @id;
Zet de id:int tussen accolades, en vang het op als parameter:
app.MapGet("/resultaten/{id:int}", async (int id) =>{// ...});
Die :int is belangrijk. Daarmee zeg je: hier hoort een getal te staan. Zonder die toevoeging matcht dit adres straks ook op /resultaten/top, en dat gaat je in opdracht 3 opbreken.
Geef id daarna mee aan je query, net als bij INSERT:
cmd.Parameters.AddWithValue("@id", id);
ReadAsync() geeft false terug als er geen rij is. Dan is er niets gevonden, en dat is geen 200:
await using var reader = await cmd.ExecuteReaderAsync();
if (!await reader.ReadAsync())
return Results.NotFound(new { bericht = $"Geen resultaat met id {id}." });
return Results.Ok(new Resultaat(
reader.GetString(0),
reader.GetString(1),
reader.GetDecimal(2),
reader.GetInt32(3),
reader.GetInt32(4)));
Let op het verschil met opdracht 1: daar gebruikte je while, hier if. Je verwacht nu maximaal één rij.