See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 21930|Vastuse: 1

[WebAPI] Web API Marsruudi omaduse definitsioon

[Kopeeri link]
Postitatud 28.04.2018 10:37:11 | | | |
ASP.NET Veebi API marsruutimine on lihtsalt öeldes protsess, mille käigus kliendipäringud kaardistatakse vastavatele tegevustele. Artiklis "ASP.NET Web API Practice Series 03, Routing Templates, Routing Conventions, Routing Settings" kogesin marsruutide seadistamist mallide, konventsioonide ja HTTP meetodite kaudu ning selle lähenemise eeliseks on see, et marsruutimismallid paigutatakse ühtlaselt WebApiConfig klassi App_Start kausta alla, mis on halduseks mugav, kuid puuduseks on see, et see pole piisavalt paindlik.


REST käsitleb kõike ressursina ning mõnikord võib alamressursside ressurss, nagu Klient ja Tellimused, soovida sisestada päringu nagu customers/1/orders, kuid seda on raske saavutada ainult kokkuleppe alusel. Tegelikult pakub ASP.NET Web API meile marsruudi funktsiooni, mida saab otse Actioniga ühendada ning mis on väga paindlik ja intuitiivne kasutada.

Vaatame, kuidas kasutada marsruudi funktsiooni ASP.NET MVC4-s.

Luba marsruudi atribuut


Esmalt pead selle WebApiConfig'is seadistama.



Ülaltoodud MapHttpAttributeRoutes meetod on saadaval ainult uuemates ASP.NET Web API versioonidesKui su versioon on suhteliselt madal, saad vana versiooni desinstallida ja paigaldada uusima versiooni NuGet Package Manager konsooli kaudu.


Järgmisena pead Global.asaxis kommenteerima WebApiConfig'i algset registreerimisviisi ja võtma kasutusele uue meetodi järgmiselt:

Sel hetkel võib projekti käivitamisel näidata järgmist viga:

See on sellepärast, et kui laadisin alla ASP.NET veebipõhise API uusima versiooni, laadisin alla ka icrosofti uusima versiooni. AspNet.WebApi.HelpPage。 Saad desinstallida HelpPage'i uusima versiooni ja laadida alla vanema versiooni.

Uninstall-Package Microsoft.AspNet.WebApi.HelpPage –Force
install-package Microsoft.AspNet.WebApi.HelpPage -pre


Kasuta Route omadust

Loo Cusomteri klass.


Loo Order klass.

Loo andmebaasiklass, et saada tellimuste kogumik.



Loo tühi API kontroller, mis on kirjutatud nii:


Sisesta oma brauserisse järgmine:

Kui kasutate arenduseks ASP.NET MVC4, võite programmi esmakordsel käivitamisel saada järgmise veateate:

[A] System.Web.WebPages.Razor.Configuration.HostSection ei saa edastada aadressile [B]System.Web.WebPages.Razor.Configuration.HostSection. Tüüp A on tuletatud "System.Web.WebPages.Razor, version=2.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (kontekstis "C:/Windows/Microsoft.Net/assembly/GAC_MSIL/ kontekstis "Default") System.Web.WebPages.Razor/v4.0_2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll"). Tüüp B on tuletatud "System.Web.WebPages.Razor, version=3.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (kontekstis "Default" "C:/Windows/Microsoft.NET/Framework/v4.0.30319/ Ajutised ASP.NET failid/vs/feb7ce97/a525d58a/asse


See on tingitud sellest, et Razori uusimat versiooni kasutatakse ASP.NET Web API uusima versiooni allalaadimisel. Pead seadistama järgmise konfiguratsiooni Web.config juurkataloogis:


Kasuta RoutePrefix funktsiooni


Kui soovid kõiki toiminguid API kontrolleris ette liita, võid panna RoutePrefix funktsiooni API kontrollerile.

Näiteks tahame, et see oleks sellises formaadis: http://localhost/api/customers/1/orders


Muuda OrdersControllerit nii.


Samuti võid kasutada ~ funktsioonis Marsruut, et tühistada Tegevuse eesliite reeglid.



RoutePrefix funktsiooni poolt määratletud prefiks võib sisaldada ka parameetrimuutujaid:


Marsruutimispiirangud

Sa saad marsruudil parameetrimuutujaid piirata sõnaga "{parameter variable name: constraint}".


Ülal, kui fragmendi muutuja id on tüüpi int, suunatakse see esimesele tegevusele ja kui mitte, suunatakse teise tegevuseni.

ASP.NET Web API sisseehitatud piirangud hõlmavad:

{x:alpha} piirab suurtähti ja väiketähti
{x:bool}
{x:datetime}
{x:dekumaal}
{x:double}
{x:float}
{x:guid}
{x:int}
{x:length(6)}
{x:length(1,20)} piirab pikkusvahemikku
{x:long}
{x:maxlength(10)}
{x:min(10)}
{x:range(10,50)}
{x:regex(regex)}


Parameetrimuutujale saab samaaegselt määrata mitu piirangut:

Rakenda IHttpRouteConstraint liidest, et piirangute reegleid kohandada. Rakenda piirang, mis ei saa olla 0.


Registreeri WebApiConfigis kohandatud piirang App_Start kaustas.


Kasuta kohandatud piiranguid.


Valikulised parameetrid ja nende vaikeväärtused

Kui marsruutimisparameetri muutuja on valikuline, tuleb sellele parameetrile anda ka vaikimisi väärtus.


Lisa ? pärast piirangut, et näidata valikulist, ja määra meetodi parameetrites vaikimisi väärtus id-le.

Sea marsruudile nimi



Marsruutimise prioriteet

Marsruudi omaduse poolt määratud marsruudi prioriteet määratakse konventsioonide ja RouteOrder omaduse põhjal.

Konventsioonid on:

1. Staatilised fragmendimuutujad
2. Fragmentmuutujad piirangutega
3. Fragmentmuutujad ilma piiranguteta
4. Wildcard fragment muutuja piirangutega
5. Piiranguteta wildcard fragment muutujad

RouteOrder omaduse vaikimisi väärtus on 0 ning mida väiksem omaduse väärtus, seda kõrgem see on.


Ülaltoodud marsruutimise prioriteedi järjekord on:

orders/details staatilise fragmendi muutuja, RouteOrder omaduse väärtus on 0
orders/{id} piiratud fragmentmuutujatega, mille väärtus on 0 RouteOrder omaduses
orders/{customerName} on piiranguteta fragmentmuutuja ning RouteOrder omaduse väärtus on 0
orders/{*date} on wildcard fragment muutuja, mille väärtus on 0 RouteOrder omaduses
tellimused/ootel MarsruutTellimuse omaduse väärtus 1






Eelmine:Hoia arvestust, mida krediitkaardiga saab maksta
Järgmine:Ei õnnestunud pakkuda protsessi ADO.NET jaoks, millel on fikseeritud nimi "MySql.Data.MySqlClient"...
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com