Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

WebApi service x.

Lignende præsentationer


Præsentationer af emnet: "WebApi service x."— Præsentationens transcript:

1 WebApi service x

2 WebApi projekt ved .NET fw 4.5/4.6
Afkryds WebApi

3 Opret Web API controler (servicen) Denne kommer til at indeholde servicens metoder

4 Web API controleren Controleren indeholder metoderne
Som udgangspunkt vil der være følgende typer, idet der kan være flere af en type: Lad metode starte med type, da det giver noget automatik i forhold til http request. Get (HttpGet - hent data – typisk parameter i url / http header) Put (HttpPut – opdater – typisk data i http body) Post (HttpPut – opret – typisk data i http body) Delete (HttpPut – slet - typisk parameter i url / http header) Flere Get eller Put efter hinanden skal typisk give samme effekt, hvorimod Post og Delete selvfølgelig efter hinanden vil virke forskelligt.

5 Implementer metoder service metoder i controleren
public class StudentController : ApiController { [HttpGet] // hjælp til routning hvis metode ikke starter med Get public Models.Student GetStudent (int id) ………………………………………….. } [HttpGet] // hjælp til routning hvis metode ikke starter med Get public IEnumerable<Models.Student> GetAllStudents() [HttpPut] // hjælp til routning hvis metode ikke starter med Put public bool PutStudent (int id, [FromBody] Models.Student student) //Update [HttpPost] // hjælp til routning hvis metode ikke starter med Post public bool PostStudent(Models.Student student) //Opret Bemærk der kan være flere metoder af samme type hvis de har forskellige parametre

6 Models indeholder data modellen
namespace WebApiApplication01.Models { public class Student public int Id { get; set; } public string Name { get; set; } } Bemærk at det ikke er nødvendigt med DataContract eller anden markering for serialisering

7 HttpContext var httpContext = Request.Properties["MS_HttpContext"] as System.Web.HttpContextWrapper; if (httpContext.Application != null) { try httpContext.Application.Lock(); if (httpContext.Application["TEST"] == null) ………………………………………. } finally httpContext.Application.UnLock(); Hvis du skal have adgang til Application bruges HttpContext Der ikke er tilgængelig direkte i controleren, men kan tilgås som vis her. Husk at låse på Application ved tilgang og ændring. Husk UnLock i finally for at sikre det altid sker Undgå at gemme mange data direkte i Application men lav din egen klasse til disse. Fx lav en klasse for en samling objekter, hvor låsning så sker her. Således at Application låses mindst muligt. Overvej brug af Static data frem Application. Husk også at REST / Web API bør som udgangspunkt være stateless I undervisningssammenhæng vil vi dog vælge data i memory for ikke også at skulle inddrage databaser hver gang – så vi kan holde fokus

8 Test af Web API Get fra browser
Start web applikationen op i den ønskede browser Hvis du ikke har sat Web.config til at tillade browsing får du en fejl, Men applikationen er nu kørende Get metoderne kan nu testes direkte fra browseren gennem uri adressen Standart efter serveradressen er /api/ efterfulgt af controlerens navn (uden Controler) efterfulgt af ? Og herefter paremetre med & i mellem Fx her: Der her giver svaret som json: {"Id":7,"Name":"Student_7_name"}

9 Test af Web API med Fiddler
Med Fiddler Composer kan du teste dine Web API metoder af mere avanceret Herunder bestemme om du vil have json eller xml. Du kan også her teste PUT, POST og DELETE og medsende data i http body Hvis du vil have json eller xml angiver du det som ekstra data i http headeren Content-Type: application/json eller Content-Type: application/xml Resultat her som json {"Id":7,"Name":"Student_7_name"}

10 Opdatering (PUT) med Fiddler
Her er der id som parameter i uri adressen og Json data (object) i http body

11 Brug af Web API i C# med brug af WebClient
Brug af WebClient for at hente data fra Web API med GET metode System.Net.WebClient webClient = new System.Net.WebClient(); webClient.Headers["Content-Type"] = "application/json"; string uriAdr = " string response = webClient.DownloadString(uriAdr); Brug af WebClient for at opdatere data med Web API med PUT metode string uploadData = "{'Id':7, 'Name':'Student_7_name'}"; // Bemærk man kan bruge ' string response = webClient.UploadString(uriAdr, ”PUT", uploadData);


Download ppt "WebApi service x."

Lignende præsentationer


Annoncer fra Google