Programavimas

Naršyti maršrutą žiniatinklio API

ASP.Net žiniatinklio API yra lengva sistema, naudojama kuriant HTTP paslaugas be pilietybės. Galite naudoti žiniatinklio API kurdami ir įgyvendindami RESTful paslaugas, kurios veikia HTTP. REST yra architektūrinis stilius - apribojimų rinkinys, naudojamas paslaugų be pilietybės įgyvendinimui. „Web API“ jau tapo pasirinkta technologija kuriant lengvas HTTP paslaugas. Šiame įraše pateiksiu diskusiją apie tai, kaip nukreipimas veikia žiniatinklio API.

Kai sukursite „Web API“ projektą „Visual Studio“, pastebėsite, kad sukurtas ir MVC projektas. Panašiai kaip ASP.Net MVC, maršruto konfigūracija žiniatinklio API projekte yra iškviečiama iš failo „Global.asax“. Žiniatinklio API projekte konfigūracijos informacija saugoma „RouteConfig“ ir „WebApiConfig“ klasėse - abi jos yra aplanke „Application_Start“. Panašiai kaip MVC projekte, turėtumėte stebėti „RouteConfig.cs“ failą, sukurtą jūsų sprendimo aplanke „App_Start“.

Valdiklis žiniatinklio API yra atsakingas už HTTP užklausų tvarkymą. Viešieji valdiklio metodai yra žinomi kaip veiksmų metodai. Kai tik gaunama užklausa, žiniatinklio API vykdymo laikas nukreipia užklausą į atitinkamą veiksmą, kad užklausa būtų tvarkoma. Dabar, norėdamas nustatyti, kuris veiksmas turėtų būti iškeltas, žiniatinklio API vykdymo laikas naudoja maršruto lentelės pranašumus. Skirtingai nuo įprastos ASP.Net MVC programos, žiniatinklio API vykdymo laikas gaunamas užklausas nukreipia į atitinkamą valdiklį, suderindamas užklausos HTTP veiksmažodį su atitinkamu veiksmo metodu.

Naudojant „ASP.Net 5“ (kuris netrukus bus išleistas kaip „Visual Studio 2015“ dalis), yra vieninga pagrindinė sistema - turite vieną išvykimo sistemą, vieno modelio privalomą sistemą ir vieno filtro vamzdyną. Dabar turite vieną vieningą ASP.Net MVC, ASP.Net Web API ir ASP.Net tinklalapių pagrindą. Taigi, užklausoms tvarkyti dabar yra tik vienas valdiklio tipas: tai įprasta jūsų ASP.Net MVC, ASP.Net Web API ir ASP.Net programoms.

Numatytasis MVC maršruto šablonas atrodo taip:

{controller} / {action} / {id}

Priešingai, numatytasis žiniatinklio API maršrutas atrodo taip:

api / {controller} / {id}

Numatytasis maršrutas, sukurtas kuriant naują žiniatinklio API projektą „Visual Studio“, atrodo taip:

viešoji statinė klasė „WebApiConfig“

{

public static void Register („HttpConfiguration config“)

{

config.Routes.MapHttpRoute (

pavadinimas: „DefaultApi“,

routeTemplate: "api / {controller} / {id}",

numatytieji parametrai: new {id = RouteParameter.Optional}

);

}

}

Atkreipkite dėmesį, kaip numatytasis maršrutas priešais yra „api“. Gera praktika yra apibrėžti savo žiniatinklio API programos maršrutus, prieš juos pridedant „api“, kad jie būtų atskirti nuo standartinio MVC maršruto. Kitoje pastaboje, kai žiūrite numatytąjį žiniatinklio API projekto maršrutą, nematysite maršruto parametro „{action}“ - žiniatinklio API vykdymo laikas užklausas susieja su atitinkamais veiksmais, pagrįstais HTTP veiksmažodžiu. prašymus.

Tačiau galite modifikuoti žiniatinklio API maršruto apibrėžimą, kad būtų įtrauktas parametras „{action}“. Šis kodo fragmentas parodo, kaip atrodo modifikuota „WebApiConfig“ klasė.

viešoji statinė klasė „WebApiConfig“

{

public static void Register („HttpConfiguration config“)

{

config.Routes.MapHttpRoute (

pavadinimas: „DefaultApi“,

routeTemplate: "api / {valdiklis} / {veiksmas} / {id}",

numatytieji parametrai: new {id = RouteParameter.Optional}

);

}

}

Dabar, kai nurodėte „{action}“ kaip maršruto dalį, turite nurodyti veiksmą, kai naudojate „WebAPI“ metodą. Apsvarstykite šį URL: // idgservice / author / 1

Šiame URL „idgservice“ yra domeno, kuriame buvo priglobta „WebAPI“, pavadinimas, valdikliai yra valdiklio vardas ir 1 kaip parametras perduodamas. Tačiau tai neveiktų, jei maršruto apibrėžime apibrėžtumėte „{action}“. Šiuo atveju turėtumėte aiškiai nurodyti veiksmo pavadinimą, kai šiuo atveju skambinate savo „WebAPI“. Čia yra teisingas URL, kuriame nurodomas veiksmo pavadinimas kaip URL dalis: // idgservice / author / GetAuthorDetails /

Atminkite, kad veiksmo pavadinimas aukščiau esančiame URL yra „GetAuthorDetails“ ir buvo paminėtas kaip modifikuoto URL dalis.

Taip pat galite nurodyti HTTP metodą veiksmui naudodami „HttpGet“, „HttpPut“, „HttpPost“ arba „HttpDelete“ atributą. Žemiau pateiktas kodo fragmentas parodo, kaip tai galima pasiekti:

public class AuthorsController: ApiController

{

[HttpGet]

viešasis autorius „GetAuthor“ (id) {}

}

Jei norite leisti kelis veiksmo HTTP metodus, galite pasinaudoti „AcceptVerbs“ atributu, kaip parodyta žemiau:

viešosios klasės „ProductsController“: „ApiController“

{

[„AcceptVerbs“ („GET“, „HEAD“)]

viešasis autorius „GetAuthor“ (id) {}

}

Taip pat galite nepaisyti veiksmo naudodami „ActionName“ atributą, kaip parodyta toliau pateiktame kodo fragmente:

public class AuthorsController: ApiController

{

[HttpGet]

[Veiksmo pavadinimas („Autoriaus duomenys“)]

viešasis autorius „GetAuthor“ (id) {}

}

Atminkite, kad taip pat galite užkirsti kelią metodo iškvietimui kaip veiksmui naudodami „NonAction“ atributą, kaip parodyta žemiau.

public class AuthorsController: ApiController

{

[HttpGet]

[NonAction]

public Boolean ValidateLogin (id) {}

}

Copyright lt.verticalshadows.com 2024

$config[zx-auto] not found$config[zx-overlay] not found