| Methode | Adres | Wat het doet |
|---|---|---|
GET |
/resultaten/top/klimmen |
de vijf snelste tijden van die oefening |
De nieuwe SQL, nu weet je wel waar het moet staan ;)
SELECT cursist, oefening, seconden, fouten, id
FROM resultaten
WHERE oefening = @oefening
ORDER BY seconden ASC
LIMIT 5;
app.MapGet("/resultaten/top/{oefening}", async (string oefening) =>
{
// ...
});
De rest is hetzelfde als opdracht 1: een while-lus met een reader, en de lijst in een object terug. Je kolomvolgorde is ook gelijk, dus je kunt die hele lus kopiëren.
Je hebt nu twee adressen die op elkaar lijken:
/resultaten/{id:int}
/resultaten/top/{oefening}
Met :int van de vorige endpoint erbij weet hij dat top geen getal is en pakt hij het goede adres.
| Verzoek | Verwacht |
|---|---|
GET /resultaten/top/klimmen |
200 met maximaal vijf rijen, snelste bovenaan |
GET /resultaten/top/zwemmen |
200 met een lege lijst |
Zorg dat je genoeg testdata hebt. Voeg met je POST-verzoek uit Bruno een stuk of acht klimtijden toe, zodat je kunt zien dat LIMIT 5 echt werkt.