Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 21930|Atbildi: 1

[Tīmekļa API] tīmekļa API maršruta rekvizīta definīcija

[Kopēt saiti]
Publicēts 28.04.2018 10:37:11 | | | |
ASP.NET Web API maršrutēšana, vienkārši sakot, ir klienta pieprasījumu kartēšanas process uz atbilstošajām darbībām. Rakstā "ASP.NET Web API prakses sērija 03, maršrutēšanas veidnes, maršrutēšanas konvencijas, maršrutēšanas iestatījumi" es piedzīvoju maršrutu iestatīšanu, izmantojot veidnes, konvencijas un HTTP metodes, un šīs pieejas priekšrocība ir tā, ka maršrutēšanas veidnes ir vienmērīgi novietotas WebApiConfig klasē zem mapes App_Start, kas ir ērti pārvaldībai, bet trūkums ir tas, ka tas nav pietiekami elastīgs.


REST visu uzskata par resursu, un dažreiz resurss ar pakārtotiem resursiem, piemēram, Klients un pasūtījumi, var vēlēties ievadīt pieprasījumu, piemēram, klienti/1/pasūtījumi, taču šo maršrutu ir grūti sasniegt tikai pēc konvencijas. Patiesībā ASP.NET Web API nodrošina mums maršruta funkciju, kuru var tieši savienot ar darbību, kas ir ļoti elastīga un intuitīvi lietojama.

Izbaudīsim, kā izmantot maršruta funkciju ASP.NET MVC4.

Atribūta Maršruts atļaušana


Vispirms tas ir jāiestata WebApiConfig.



Iepriekš minētā metode MapHttpAttributeRoutes ir pieejama tikai jaunākās ASP.NET Web API versijāsJa jūsu versija ir salīdzinoši zema, varat atinstalēt veco versiju un instalēt jaunāko versiju, izmantojot NuGet Package Manager konsoli.


Pēc tam Global.asax jums ir jākomentē sākotnējais WebApiConfig reģistrācijas veids un jāpieņem jauna metode:

Šajā laikā, palaižot projektu, var tikt ziņots par šādu kļūdu:

Tas ir tāpēc, ka, lejupielādējot jaunāko ASP.NET Web API versiju, es lejupielādēju arī jaunāko icrosoft versiju. AspNet.WebApi.HelpPage。 Varat atinstalēt jaunāko HelpPage versiju un lejupielādēt vecāko versiju.

Atinstalējiet pakotni Microsoft.AspNet.WebApi.HelpPage –Force
Instalēšanas pakotne Microsoft.AspNet.WebApi.HelpPage -Pre


Rekvizīta Maršruts izmantošana

Izveidojiet Cusomter klasi.


Izveidojiet pasūtījuma klasi.

Izveidojiet datu bāzes klasi, lai iegūtu pasūtījumu kolekciju.



Izveidojiet tukšu API kontrolieri, kas rakstīts šādi:


Pārlūkprogrammā ierakstiet:

Ja izmantojat ASP.NET MVC4 izstrādei, pirmo reizi palaižot programmu, var tikt parādīts šāds kļūdas ziņojums:

[A] System.Web.WebPages.Razor.Configuration.HostSection nevar pārraidīt uz [B]System.Web.WebPages.Razor.Configuration.HostSection. A tips ir atvasināts no "System.Web.WebPages.Razor, version=2.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (sadaļā "C:/Windows/Microsoft.Net/assembly/GAC_MSIL/ kontekstā "Noklusējums") System.Web.WebPages.Razor/v4.0_2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll"). B tips ir atvasināts no "System.Web.WebPages.Razor, version=3.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (kontekstā "Noklusējums" sadaļā "C:/Windows/Microsoft.NET/Framework/v4.0.30319/ Pagaidu ASP.NET faili / vs / feb7ce97 / a525d58a / asse


Tas ir tāpēc, ka, lejupielādējot jaunāko ASP.NET Web API versiju, tiek izmantota jaunākā Razor versija. Web.config saknes direktorijā ir jākonfigurē šāda konfigurācija:


Funkcijas RoutePrefix izmantošana


Ja vēlaties prefiksu visām darbībām API kontrollerī, varat ievietot līdzekli RoutePrefix API kontrollerī.

Piemēram, mēs vēlamies, lai tas būtu šādā formātā: http://localhost/api/customers/1/orders


Šādā veidā modificējiet OrdersController.


Varat arī izmantot ~ maršruta līdzeklī, lai ignorētu darbības prefiksa kārtulas.



Prefiksam, ko definē līdzeklis RoutePrefix, var būt arī parametru mainīgie:


Maršrutēšanas ierobežojumi

Jūs varat ierobežot parametru mainīgos maršrutā ar "{parameter variable name: constraint}".


Iepriekš, ja fragmenta mainīgais id ir int tipa, tas tiek maršrutēts uz pirmo darbību, un, ja nē, tas tiek novirzīts uz otro darbību.

ASP.NET Web API iebūvētie ierobežojumi ietver:

{x:alpha} ierobežo lielos un mazos burtus
{x:bool}
{x:datetime}
{x:decimāldaļa}
{x:dubultā}
{x:pludiņš}
{x:guid}
{x:int}
{x:garums(6)}
{x:length(1,20)} ierobežo garuma diapazonu
{x:garš}
{x:maksimālais garums(10)}
{x:min(10)}
{x:diapazons(10,50)}
{x:regex(regex)}


Parametra mainīgajam var iestatīt vairākus ierobežojumus vienlaikus:

Ieviesiet IHttpRouteConstraint interfeisu, lai pielāgotu ierobežojumu kārtulas. Ieviesiet ierobežojumu, kas nevar būt 0.


Reģistrējiet pielāgotu ierobežojumu WebApiConfig mapē App_Start.


Izmantojiet pielāgotus ierobežojumus.


Fakultatīvie parametri un to noklusējuma vērtības

Ja maršrutēšanas parametra mainīgais nav obligāts, parametram ir jāpiešķir arī noklusējuma vērtība.


Pievienojiet ? pēc ierobežojuma, lai norādītu neobligāti, un metodes parametros iestatiet id noklusējuma vērtību.

Maršruta nosaukuma iestatīšana



Maršrutēšanas prioritāte

Rekvizīta Route iestatītā maršruta prioritāte tiek noteikta, pamatojoties uz konvencijām un rekvizītu RouteOrder.

Konvencijas ir šādas:

1. Statiskie fragmentu mainīgie lielumi
2. Fragmentējiet mainīgos ar ierobežojumiem
3. Fragmentējiet mainīgos bez ierobežojumiem
4. Aizstājējzīmju fragmenta mainīgais ar ierobežojumiem
5. Neierobežoti aizstājējzīmju fragmentu mainīgie

Rekvizīta RouteOrder noklusējuma vērtība ir 0, un, jo mazāka rekvizīta vērtība, jo lielāka tā ir.


Iepriekš maršrutēšanas prioritātes secība ir šāda:

orders/details statiskā fragmenta mainīgais, rekvizīta RouteOrder vērtība ir 0
orders/{id} ar ierobežotiem fragmentu mainīgajiem ar vērtību 0 rekvizītā RouteOrder
orders/{customerName} ir fragmenta mainīgais bez ierobežojumiem, un rekvizīta RouteOrder vērtība ir 0
orders/{*date} ir aizstājējzīmju fragmenta mainīgais ar vērtību 0 rekvizītā RouteOrder
pasūtījumi/gaidāmā RouteOrder rekvizīta vērtība 1






Iepriekšējo:Reģistrējiet to, ko var apmaksāt ar kredītkarti
Nākamo:Nevar nodrošināt procesu ADO.NET ar fiksētu nosaukumu "MySql.Data.MySqlClient"...
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com