Ohjelmointi

Reitityksen tutkiminen Web-sovellusliittymässä

ASP.Net Web API on kevyt kehys, jota käytetään valtiottomien HTTP-palveluiden rakentamiseen. Voit käyttää Web-sovellusliittymää RESTful-palvelujen suunnitteluun ja toteuttamiseen HTTP: llä. REST on arkkitehtoninen tyyli - joukko rajoituksia, joita käytetään kansalaisuudettomien palvelujen toteuttamiseen. Web-sovellusliittymästä on jo tullut valittu tekniikka kevyiden HTTP-palvelujen rakentamiseen. Tässä viestissä esitän keskustelun siitä, miten reititys toimii Web-sovellusliittymässä.

Kun luot Web API -projektin Visual Studiossa, huomaa, että luodaan myös MVC-projekti. Samoin kuin ASP.Net MVC, Web API -projektin reititysmääritykset kutsutaan Global.asax-tiedostosta. Web-sovellusliittymäprojekti tallentaa kokoonpanotiedot RouteConfig- ja WebApiConfig-luokkiin - molemmat näistä ovat Application_Start-kansiossa. Samanlainen kuin MVC-projekti, havaitset RouteConfig.cs-tiedoston, joka on luotu ratkaisun App_Start-kansioon.

Web-sovellusliittymän ohjain on vastuussa HTTP-pyyntöjen käsittelystä. Ohjaimen julkiset menetelmät tunnetaan toimintamenetelminä. Heti kun pyyntö on vastaanotettu, Web-sovellusliittymän ajoaika ohjaa pyynnön asianmukaiseen toimintoon pyynnön käsittelemiseksi. Web-sovellusliittymän ajonaika hyödyntää nyt reititystaulukkoa voidakseen määrittää, mihin toimintoon pitäisi ryhtyä. Toisin kuin tyypillinen ASP.Net MVC -sovellus, Web-sovellusliittymän ajonaika reitittää saapuvat pyynnöt sopivaan ohjaimeen sovittamalla pyynnön HTTP-verbi sopivaan toimintamenetelmään.

ASP.Net 5: n (julkaistaan ​​pian osana Visual Studio 2015) kanssa on olemassa yhtenäinen ydinkehys - sinulla on yksi lähtökehys, yhden mallin sitova kehys ja yhden suodattimen putki. Sinulla on nyt yksi yhtenäinen ydin ASP.Net MVC: lle, ASP.Net Web -sovellusliittymälle ja ASP.Net-verkkosivuille. Joten nyt on vain yksi ohjain, joka käsittelee pyyntöjä: se on yhteistä ASP.Net MVC-, ASP.Net Web API- ja ASP.Net-sovelluksillesi.

MVC-oletusreittimalli näyttää tältä:

{controller} / {action} / {id}

Sen sijaan oletusarvoinen Web-sovellusliittymän reitti näyttää tältä:

api / {ohjain} / {id}

Oletusreitti, joka luodaan luodessasi uuden Web API -projektin Visual Studiossa, näyttää tältä:

julkinen staattinen luokka WebApiConfig

{

public static void Register (HttpConfiguration config)

{

config.Routes.MapHttpRoute (

nimi: "DefaultApi",

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

oletusarvot: uusi {id = RouteParameter.Optional}

);

}

}

Huomaa, kuinka oletusreitti on etuliitteellä "api". On hyvä käytäntö määritellä Web-sovellusliittymän reitit etuliittämällä ne "api" -merkkeihin, jotta ne eroavat tavallisesta MVC-reitistä. Toisessa huomautuksessa, kun tarkastelet Web-sovellusliittymän projektin oletusreittiä, et näe reittiparametria "{action}" - Web-sovellusliittymän ajonaikainen kartoittaa pyynnöt asianmukaisiin toimintoihin pyynnöt.

Voit kuitenkin muokata Web-sovellusliittymän reitin määrittelyä sisällyttämään parametri "{action}". Seuraava koodinpätkä kuvaa, kuinka muokattu WebApiConfig-luokka näyttää.

julkinen staattinen luokka WebApiConfig

{

public static void Register (HttpConfiguration config)

{

config.Routes.MapHttpRoute (

nimi: "DefaultApi",

routeTemplate: "api / {ohjain} / {toiminta} / {id}",

oletusarvot: uusi {id = RouteParameter.Optional}

);

}

}

Nyt kun olet määrittänyt "{action}" osana reittiä, sinun on määritettävä toiminto, kun vedot WebAPI-menetelmää. Harkitse seuraavaa URL-osoitetta: // idgservice / author / 1

Tässä URL-osoitteessa idgservice on verkkotunnuksen nimi, jossa WebAPI on isännöity, tekijät ovat ohjaimen nimi ja 1 välitetään parametrina. Tämä ei kuitenkaan toimisi, jos olet määrittänyt "{action}" reitin määrittelyssä. Sinun on mainittava nimenomaisesti toiminnan nimi kutsuttaessa WebAPI: täsi tässä tapauksessa. Tässä on oikea URL-osoite, joka sisältää toiminnon nimen osana URL-osoitetta: // idgservice / author / GetAuthorDetails /

Huomaa, että yllä olevan URL-osoitteen toiminnan nimi on GetAuthorDetails ja se on mainittu osana muokattua URL-osoitetta.

Voit myös määrittää toiminnon HTTP-menetelmän käyttämällä HttpGet-, HttpPut-, HttpPost- tai HttpDelete-määritettä. Alla annettu koodinpätkä kuvaa, miten tämä voidaan saavuttaa:

public class AuthorsController: ApiController

{

[HttpGet]

julkinen kirjailija GetAuthor (id) {}

}

Jos haluat sallia useita HTTP-menetelmiä toiminnolle, voit hyödyntää AcceptVerbs-määritettä alla esitetyllä tavalla:

public class ProductsController: ApiController

{

[AcceptVerbs ("GET", "HEAD")]

julkinen kirjailija GetAuthor (id) {}

}

Voit myös ohittaa toiminnon käyttämällä ActionName-määritettä alla olevan koodinpätkän mukaisesti:

public class AuthorsController: ApiController

{

[HttpGet]

[ActionName ("AuthorDetails")]

julkinen kirjailija GetAuthor (id) {}

}

Huomaa, että voit myös estää menetelmää käyttämästä toimintona hyödyntämällä NonAction-määritettä alla esitetyllä tavalla.

public class AuthorsController: ApiController

{

[HttpGet]

[NonAction]

public Boolean ValidateLogin (id) {}

}

Copyright fi.verticalshadows.com 2024

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