Models/dataklasser
Models, eller modeller, är helt enkelt klasser som används av t.ex. en REST-server för att beskriva information. Ofta beskriver modellerna objekt som lagras i en databas av något slag, men det gås inte in på här.
Modellklasser/dataklasser
Alla egenskaper som ska returneras av API:t måste vara publika properties.
Returnera instanser som svar på requests
JSON-serialiserade instanser
För att en [HttpGet]-metod ska returnera en JSON-serialiserad version av en instans av en modellklass, behövs två saker:
När man deklarerar metoden säger man att den ska returnera ActionResult<Something>, där Something är namnet på klassen vars instanser ska serialiseras.
När man kör Ok, så lägger man in en instans av den klassen inom parenteserna.
Resultatet av ovanstående blir att följande JSON-kod skickas med i HTTP-response-bodyn:
JSON-serialiserade listor med instanser
Nedanstående kod skapar en lista med två pokemons, och returnerar den listan till klienter som anropar servern med ett GET-anrop.
Mer specifika frågor
Om en användare ska kunna stoppa in mer specifik information i sin request, och svaret anpassas efter denna information, så behövs något sätt att läsa av den informationen i Controllern.
När man skapar sin Get-metod så kan man lägga till en [Route]
, och specificera något som ska bli en variabel mellan måsvingar. Så i nedanstående exempel står det [Route("{num}")]
, vilket betyder att det är den metoden som ska användas om något anges i slutet av request-url:en – t.ex. att url:en är /api/pokemon/23
.
Det som står inom {} kommer att tolkas som data, som stoppas in som parameter i metoden – observera att metoden också har en "num". Det nummer som anges i request-url:en kommer alltså at omvandlas till en int och stoppas in som motsvarande parameter.
Hade det stått [Route("/find/{num}")]
istället, så hade routen matchat t.ex. /api/pokemon/find/23
. 23 hade fortfarande omvandlats till int-parametern num.
Last updated