RESTful client*
Snabbstart
Nedanstående exempelkod skapar ett klientobjekt och ett requestobjekt, skickar requesten genom klienten för att få ett response, och deserialiserar response-objektets text till en instans av Pokemon-klassen.
HttpClient
En klass som sköter kommunikationen med API-servern.
Skapar ett klientobjekt som kommer att skicka requests till PokeAPI.
BaseAddress behöver egentligen inte ändras, men det är praktiskt ifall man ska göra många anrop till url:er som börjar på samma sätt.
GetAsync, PostAsync, PutAsync, DelAsync
Dessa metoder används för att skicka en request till en RESTful API-server och leverera resultatet.
Välj rätt metod:
PostAsync
POST
Skapa en ny resurs
GetAsync
GET
Hämta data om en resurs
PutAsync
PUT
Ändra en resurs
DelAsync
DELETE
Ta bort en resurs
Metoderna tar alla emot en url-sträng och returnerar en Task. Denna Task ger sedan ifrån sig, som Result, ett HttpResponseMessage.
Post och Put vill också ha en body – alltså det som ska skickas in.
Många metoder här är asynkrona metod. Med andra ord går det att använda await istället för .Result om man är i en asynkron metod.
HttpResponseMessage
Ett HttpResponseMessage-objekt innehåller det svar servern skickat tillbaka.
StatusCode
I response-objektet ingår en StatusCode. Dess datatyp är en Enum som heter HttpStatusCode och finns i biblioteket System.Net. Dess möjliga värden är alla existerande, definierade statuskoder från HTTP-standarden. Till exempel Ok och NotFound.
För att slippa skriva System.Net hela tiden kan du använda ett using-statement högst upp i filen:
Content
Content är det "innehåll" servern svarat med.
Ofta är Content JSON eller XML-format, och då kan informationen deserialiseras till ett objekt antingen via JSON-deserialisering eller XML-deserialisering.
Om det är JSON så finns ett enklare sätt – inkludera System.Net.Http.Json
och använd ReadFromJsonAsync
istället för ReadAsStringAsync
.
Kommunicera med en lokal server
Om du vill anropa en lokal server (localhost) men får ett felmeddelande om ett SSL-fel, så kan du kör denna kod i terminalen för att det ska fungera:
Öppna databas-API:er
Steam-API
Marvel API (kräver en del egna efterforskningar och krångel – hög svårighetsgrad!)
Last updated