WebApi service x.

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

Distribueret programmering, specielt Web Services Rasmus D. Lehrmann DM
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
1 JavaServer Faces Copyright © Lund & Bendsen A/S UI Components II.
REST - tekniske aspekter. RESTs tekniske aspekter  Pragmatisk tilgang  pragmatisk != uspecificeret  orienteret mod den konkrete opgave.
ASP.NET Extensions Jakob Tikjøb Andersen
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Tietgen Skolen Trick med facadeklasse og serialisering ”Trick” – model ”samles” til eet overordnet objekt Alle klasser i model skal have attriutten [Serializable]
Medtag.NET komponent for serialisering med DataContracts.
Structs Structs allokeres på stakken Memory-allokering sker ved oprettelse af variabel og ikke ved new Der kan defineres metoder incl. Constructor. Eksempel.
ASP.NET Cache, State DataGrid og Diagnostics. Agenda – ASP.NET Cache, State og Cookies ( 1 del ) –Cache –Static member –Application State –Session State.
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Opfølgning på obligatorisk opgave 1 ONK1. Ingeniørhøjskolen i Århus Slide 2 Overordnet Flere gode opgaver De samme fejl går igen.. Alle der har afleveret.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
1 HMAK XMLRelationel model og XMLNOEA / PQC 2005 SQLServer og XML Hent data via URL Generering af xml –Raw –Auto –Explicit Hent data via template Evt.
Stig Irming-Pedersen ASP.NET MVC Partner Copenhagen Software.
Web-services i Danmarks Miljøportal
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
Fundamentale datastrukturer
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Masterpages/Otto Knudsen 1 Navigation på webstedet Kontroller til navigation mellem siderne på webstedet.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
ADO.NET Databaser SQL Client (SQL server 7 og senere) OleDb (en række incl. jet) ODBC MySql (ekstra driver skal instaleres) Oracle (XML dataset) Samme.
Internetteknologi (ITNET2) Kort teknisk ASP.NET introduktion Mandag den 19/ Jesper Tørresø.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Hvad består en distribueret applikation af ? Processer der kører på hver deres maskine Tråde - 1 eller flere "letvægtsprocesser" per proces Objekter i.
Per P Madsen AAU1 Del 4 : Sessions-, presentations- og applikationslaget - Applikationsprotokoller. - RPC og RMI. - Digital audio og Voice over IP. - RTP.
Databaseadgang fra C#:
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
Anmelderklub.dk. Struktur - Betina Indledning Hvad er brugervenlighed? Er Anmelderklub.dk brugervenlig? Hvordan kunne vi have testet anderledes? Hvad.
Web services SOA, SOAP og WSDL. Disposition Inledning / Definition SOAP Standard SOAP Beskeder WSDL.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
 Jens Bennedsen 2002Objektorienteret systemudvikling1.1 Objektorienteret design Persistens - introduktion.
Introduktion I4DAB1 Jesper Tørresø Efterår Databaser ? Hvorfor indskyde et lag mellem applikation og det permanente/persistente lager? Hvordan gemmes.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Form i PHP Webintegrator HF1 PHP Object orienteret.
Programmering I Java/C# Datatekniker Dit første projekt.
Web- og serverprogrammering Dette materiale er under Åben Dokumentlicens, se dag 9 AHAH - Asynkron HTML og HTTP.
Objecter Introduktion Webintegrator HF1 PHP Object orienteret.
IT i danskundervisningen Sydfalster Skole den 15.5 Kort om blogs – igenigen! SMS-noveller (sprog og kommunikation) Skriftlighed og IT Mundtlighed og IT.
WebApi service part 2 Routning og Action Simpel test-client (javascript) Session og Application data.
Windows PowerShell Ikke kun for windows.
Don’t be afraid of the advanced editor
Anvendelse.
ISS webserver og web applikationer
”Avanceret” Programmering
Quiz – Uge 4 – torsdag – første time
Programklasser for bladhus
GUIDE TIL BRUGEN AF FÆLLESMATERIALER (LÆRER)
1587 Server - Blandet miljø Webintegrator HF1
Klasser og objekter (Afsnit i manualen).
Simpel test-client (javascript) Session og Application data
(brug af MVVMStarterLibrary2018)
Quiz – Uge 4 – torsdag – første time
MongoDB Ikke SQL!.
CargoCRM Administratorkursus.
CMS – Inner Wheel Danmarks hjemmesider
Præsentationens transcript:

WebApi service x

WebApi projekt ved .NET fw 4.5/4.6 Afkryds WebApi

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

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.

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

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

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

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: http://localhost:1762/api/Student?id=7 Der her giver svaret som json: {"Id":7,"Name":"Student_7_name"}

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"}

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

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 = "http://localhost:1762/api/Student?id=7"; 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);