Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 21930|Vastaus: 1

[WebAPI] web API Reitin ominaisuusmäärittely

[Kopioi linkki]
Julkaistu 28.4.2018 10.37.11 | | | |
ASP.NET Web API:n reititys on yksinkertaisesti prosessi, jossa asiakaspyynnöt yhdistetään vastaaviin toimintoihin. Artikkelissa "ASP.NET Web API Practice Series 03, Routing Templates, Routing Conventions, Routing Settings" koin reittien asettamisesta mallipohjan, konventioiden ja HTTP-metodien kautta, ja tämän lähestymistavan etuna on, että reitityspohjat sijoitetaan yhtenäisesti WebApiConfig-luokkaan App_Start-kansion alle, mikä on kätevää hallintaan, mutta haittapuolena on, ettei reititys ole tarpeeksi joustava.


REST käsittelee kaikkea resurssina, ja joskus resurssi, jossa on lapsiresursseja, kuten Asiakas ja Tilaukset, saattaa haluta syöttää pyynnön kuten customers/1/orders, mutta tätä reittiä on vaikea saavuttaa pelkän käytännön perusteella. Itse asiassa ASP.NET Web API tarjoaa meille Route-ominaisuuden, joka voidaan yhdistää suoraan Actioniin, ja se on erittäin joustava ja intuitiivinen käyttää.

Kokeillaan, miten Route-ominaisuutta käytetään ASP.NET MVC4:ssä.

Salli Route-attribuutti


Ensin sinun täytyy asentaa se WebApiConfigiin.



Yllä oleva MapHttpAttributeRoutes-menetelmä on saatavilla vain uudemmissa ASP.NET Web API:n versioissaJos versiosi on suhteellisen matala, voit poistaa vanhan version ja asentaa uusimman version NuGet Package Manager -konsolin kautta.


Seuraavaksi Global.asaxissa sinun täytyy kommentoida WebApiConfigin alkuperäinen rekisteröintitapa ja ottaa käyttöön uusi metodi, seuraavasti:

Tällä hetkellä projektin suorittaminen voi raportoida seuraavan virheen:

Tämä johtuu siitä, että kun latasin ASP.NET Web APIn uusimman version, latasin myös uusimman icrosoftin version. AspNet.WebApi.HelpPage。 Voit poistaa HelpPagen uusimman version ja ladata vanhemman version.

Uninstall-Package Microsoft.AspNet.WebApi.HelpPage –Force
Install-Package Microsoft.AspNet.WebApi.HelpPage -pre


Käytä Route-ominaisuutta

Luo Cusomter-luokka.


Luo Order-luokka.

Luo tietokantaluokka saadaksesi Order-kokoelman.



Luo tyhjä API-ohjain kirjoitettuna näin:


Kirjoita selaimessasi seuraava:

Jos käytät ASP.NET MVC4:ää kehitykseen, saatat saada seuraavan virheen, kun ohjelma ajetaan ensimmäistä kertaa:

[A] System.Web.WebPages.Razor.Configuration.HostSection ei voi lähettää osoitteeseen [B]System.Web.WebPages.Razor.Configuration.HostSection. Tyyppi A on johdettu sanoista "System.Web.WebPages.Razor, version=2.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (kohdassa "C:/Windows/Microsoft.Net/assembly/GAC_MSIL/ kontekstissa "Default") System.Web.WebPages.Razor/v4.0_2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll"). Tyyppi B on johdettu "System.Web.WebPages.Razor, version=3.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (kontekstissa "Default" muodossa "C:/Windows/Microsoft.NET/Framework/v4.0.30319/ Väliaikaiset ASP.NET-tiedostot/vs/feb7ce97/a525d58a/asse


Tämä johtuu siitä, että Razorin uusinta versiota käytetään latattaessa uusinta ASP.NET Web API:n versiota. Sinun täytyy konfiguroida seuraava asetus Web.configin juurihakemistossa:


Käytä RoutePrefix-ominaisuutta


Jos haluat etuliittää kaikki toiminnot API-ohjaimessa, voit laittaa RoutePrefix-ominaisuuden API-ohjaimelle.

Esimerkiksi haluamme sen olevan tällaisessa muodossa: http://localhost/api/customers/1/orders


Muokkaa OrdersControlleria tällä tavalla.


Voit myös käyttää ~ Reitti-ominaisuudessa ohittaaksesi Toiminnon etuliitesäännöt.



RoutePrefix-ominaisuuden määrittelemä etuliite voi myös sisältää parametrimuuttujia:


Reititysrajoitteet

Voit rajoittaa parametrimuuttujia reitillä sanomalla "{parameter variable name: constraint}".


Yllä, jos fragmenttimuuttuja id on tyyppiä int, se reititetään ensimmäiselle Toiminnolle, ja jos ei, se reititetään toiselle Toiminnolle.

ASP.NET Web API:n sisäänrakennetut rajoitteet sisältävät:

{x:alpha} rajoittaa isot ja pienet kirjaimet
{x:bool}
{x:datetime}
{x:desimaali}
{x:double}
{x:float}
{x:guid}
{x:int}
{x:length(6)}
{x:length(1,20)} rajoittaa pituusalueen
{x:long}
{x:maxlength(10)}
{x:min(10)}
{x:range(10,50)}
{x:regex(regex)}


Voit asettaa useita rajoitteita yhdelle parametrimuuttujalle samanaikaisesti:

Toteuta IHttpRouteConstraint-rajapinta rajoitussääntöjen mukauttamiseksi. Toteuta rajoite, joka ei voi olla 0.


Rekisteröi mukautettu rajoite WebApiConfigiin App_Start-kansioon.


Käytä omia rajoituksia.


Valinnaiset parametrit ja niiden oletusarvot

Jos reititysparametrin muuttuja on valinnainen, sille on myös annettava oletusarvo.


Lisää ? rajoitteen jälkeen ilmaistaksesi valinnaisen, ja aseta oletusarvo id:lle metodin parametreissa.

Aseta reitille nimi



Reititysprioriteetti

Route-ominaisuuden asettama reittiprioriteetti määräytyy konventioiden ja RouteOrder-ominaisuuden perusteella.

Tapahtumat ovat:

1. Staattiset fragmenttimuuttujat
2. Fragmenttimuuttujat rajoitteineen
3. Fragmenttimuuttujat ilman rajoitteita
4. Villikorttifragmenttimuuttuja rajoitteineen
5. Rajoittamattomat villikorttifragmenttimuuttujat

RouteOrder-ominaisuuden oletusarvo on 0, ja mitä pienempi ominaisuusarvo, sitä suurempi se on.


Yllä reitityksen prioriteettijärjestys on:

orders/details staattinen fragmenttimuuttuja, RouteOrder-ominaisuuden arvo on 0
orders/{id}, jossa on rajoitetut fragmenttimuuttujat, joiden arvo on 0 RouteOrder-ominaisuudessa
orders/{customerName} on fragmenttimuuttuja ilman rajoitteita, ja RouteOrder-ominaisuuden arvo on 0
orders/{*date} on villikorttifragmenttimuuttuja, jonka arvo on 0 RouteOrder-ominaisuudessa
tilaukset/odottavat ReittiTilaus-ominaisuuden arvo 1






Edellinen:Pidä kirjaa siitä, mitä luottokortilla voi maksaa
Seuraava:En pysty toimittamaan prosessia ADO.NET:lle, jonka kiinteä nimi on "MySql.Data.MySqlClient"...
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com