Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 21930|Odgovoriti: 1

[WebAPI] Web API Definicija lastnosti poti

[Kopiraj povezavo]
Objavljeno na 28. 04. 2018 10:37:11 | | | |
ASP.NET usmerjanje spletnih API-jev je preprosto povedano proces preslikave zahtev odjemalcev na ustrezne akcije. V članku "ASP.NET Web API Practice Series 03, predloge usmerjanja, konvencije usmerjanja, nastavitve usmerjanja" sem izkusil nastavitev poti preko predlog, konvencij in HTTP metod, prednost tega pristopa pa je, da so predloge usmerjanja enakomerno umeščene v razred WebApiConfig pod mapo App_Start, kar je priročno za upravljanje, vendar je slabost v tem, da ni dovolj prilagodljiv.


REST obravnava vse kot vir, včasih pa lahko vir z podrejenimi viri, kot so stranke in naročila, vnese zahtevo, kot so kupci/1/naročila, vendar je težko doseči to pot zgolj po konvenciji. Pravzaprav ASP.NET spletni API ponuja funkcijo Route, ki jo lahko neposredno povežemo z Action, kar je zelo prilagodljivo in intuitivno za uporabo.

Poglejmo, kako uporabljati funkcijo Route v ASP.NET MVC4.

Dovoli atribut Route


Najprej moraš nastaviti v WebApiConfig.



Zgornja metoda MapHttpAttributeRoutes je na voljo le v novejših različicah ASP.NET Web API-jaČe je vaša različica razmeroma nizka, lahko staro različico odstranite in najnovejšo namestite preko konzole NuGet Package Manager.


Nato morate v Global.asax komentirati prvotni način registracije WebApiConfig in sprejeti novo metodo, kot sledi:

V tem trenutku lahko zagon projekta poroča o naslednji napaki:

To je zato, ker sem ob prenosu najnovejše različice ASP.NET spletnega API-ja prenesel tudi najnovejšo različico icrosofta. AspNet.WebApi.HelpPage。 Lahko odstraniš najnovejšo različico HelpPage in preneseš starejšo različico.

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


Uporabite lastnost Route

Ustvarite Cusomter tečaj.


Ustvarite razred Order.

Ustvarite razred Database za pridobitev zbirke Order.



Ustvarite prazen API krmilnik, napisan takole:


V brskalnik vpišite naslednje:

Če za razvoj uporabljate ASP.NET MVC4, se lahko ob prvem zagonu programa pojavi naslednja napaka:

[A] System.Web.WebPages.Razor.Configuration.HostSection ni mogoče oddajati v [B]System.Web.WebPages.Razor.Configuration.HostSection. Tip A izhaja iz "System.Web.WebPages.Razor, version=2.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (v "C:/Windows/Microsoft.Net/assembly/GAC_MSIL/ v kontekstu "Default") System.Web.WebPages.Razor/v4.0_2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll"). Tip B izhaja iz "System.Web.WebPages.Razor, version=3.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (v kontekstu "Default" v "C:/Windows/Microsoft.NET/Framework/v4.0.30319/ Začasne ASP.NET datoteke/vs/feb7ce97/a525d58a/asse


To je zato, ker se pri prenosu najnovejše različice spletnega API-ja ASP.NET uporablja najnovejša različica Razorja. V korenski mapi Web.config morate konfigurirati naslednjo konfiguracijo:


Uporabite funkcijo RoutePrefix


Če želite v API krmilniku predpono postaviti vse akcije, lahko funkcijo RoutePrefix namestite na API krmilnik.

Na primer, želimo, da je v takšni obliki: http://localhost/api/customers/1/orders


Na ta način spremenite OrdersController.


Lahko uporabite tudi ~ v funkciji Poti, da preglasite pravila predpone Dejanja.



Predpona, ki jo določa funkcija RoutePrefix, lahko vsebuje tudi parametrične spremenljivke:


Omejitve usmerjanja

Parametrične spremenljivke v poti lahko omejite z "{parameter variable name: constraint}".


Zgoraj, če je id fragmentne spremenljivke tipa int, se usmeri na prvo dejanje, če ne, pa na drugo dejanje.

ASP.NET Vgrajene omejitve spletnega API-ja vključujejo:

{x:alpha} omejuje velike in male črke
{x:bool}
{x:datetime}
{x:decimal}
{x:double}
{x:float}
{x:guid}
{x:int}
{x:length(6)}
{x:length(1,20)} omejuje razpon dolžine
{x:long}
{x:maxlength(10)}
{x:min(10)}
{x:range(10,50)}
{x:regex(regex)}


Za parametrično spremenljivko lahko nastavite več omejitev hkrati:

Implementirajte vmesnik IHttpRouteConstraint za prilagoditev omejitev. Implementirajte omejitev, ki ne more biti 0.


Registrirajte prilagojeno omejitev v WebApiConfig v mapi App_Start.


Uporabi prilagojene omejitve.


Opcijski parametri in njihove privzete vrednosti

Če je spremenljivka usmerjevalnega parametra neobvezna, mora biti parametru dodeljena tudi privzeta vrednost.


Dodaj ? za omejitev za označevanje opcijskega in nastavi privzeto vrednost za id v parametrih metode.

Določite ime za pot



Prednost usmerjanja

Prioriteta poti, ki jo določa lastnost Route, je določena na podlagi konvencij in lastnosti RouteOrder.

Konvencije so:

1. Statične fragmentne spremenljivke
2. Fragmentne spremenljivke z omejitvami
3. Fragmentirajte spremenljivke brez omejitev
4. Spremenljivka z delom z nadomestnimi znaki z omejitvami
5. Neomejene spremenljivke fragmentov z divjimi znaki

Privzeta vrednost lastnosti RouteOrder je 0, in manjša kot je vrednost, višja je.


Zgoraj je vrstni red prioritet usmerjanja naslednji:

spremenljivka statičnih fragmentov orders/details, vrednost lastnosti RouteOrder je 0
orders/{id} z omejenimi fragmentnimi spremenljivkami z vrednostjo 0 v lastnosti RouteOrder
orders/{customerName} je fragmentna spremenljivka brez omejitev, vrednost lastnosti RouteOrder pa je 0
orders/{*date} je spremenljivka z delom wildcard z vrednostjo 0 v lastnosti RouteOrder
naročila/čakajoča vrednost lastnosti RouteOrder 1






Prejšnji:Vodite evidenco o tem, kaj je mogoče plačati s kreditno kartico
Naslednji:Ker ni mogoče zagotoviti procesa za ADO.NET s fiksnim imenom "MySql.Data.MySqlClient"...
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com