Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 21930|Odpoveď: 1

[WebAPI] Web API Definícia vlastností trasy

[Kopírovať odkaz]
Zverejnené 28. 4. 2018 10:37:11 | | | |
ASP.NET smerovanie Web API, jednoducho povedané, je proces mapovania klientskych požiadaviek na príslušné akcie. V článku "ASP.NET Web API Practice Series 03, Routing Templates, Routing Conventions, Routing Settings" som zažil nastavenie tras cez šablóny, konvencie a HTTP metódy, pričom výhodou tohto prístupu je, že šablóny smerovania sú jednotne umiestnené v triede WebApiConfig pod priečinkom App_Start, čo je pohodlné na správu, ale nevýhodou je, že nie je dostatočne flexibilná.


REST považuje všetko za zdroj a niekedy môže zdroj s podzdrojmi, ako sú Customer a Orders, chcieť zadať požiadavku ako customer/1/orders, ale je ťažké dosiahnuť túto cestu len konvenciou. V skutočnosti nám ASP.NET webové API poskytuje funkciu Route, ktorú možno priamo prepojiť s Action, čo je veľmi flexibilné a intuitívne na používanie.

Poďme si vyskúšať, ako používať funkciu Route v ASP.NET MVC4.

Povoľte atribút Route


Najprv to musíš nastaviť vo WebApiConfig.



Vyššie uvedená metóda MapHttpAttributeRoutes je dostupná iba v novších verziách ASP.NET Web APIAk je vaša verzia relatívne nízka, môžete starú verziu odinštalovať a najnovšiu nainštalovať cez konzolu NuGet Package Manager.


Ďalej v Global.asax musíte opísať pôvodný spôsob registrácie WebApiConfig a prijať novú metódu, nasledovne:

V súčasnosti môže spustenie projektu hlásiť nasledujúcu chybu:

Je to preto, že pri sťahovaní najnovšej verzie ASP.NET Web API som si tiež stiahol najnovšiu verziu icrosoftu. AspNet.WebApi.HelpPage。 Môžete odinštalovať najnovšiu verziu HelpPage a stiahnuť si staršiu verziu.

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


Použite vlastnosť Route

Vytvorte si kurz Cusomter.


Vytvorte triedu Order.

Vytvorte triedu Databáza na získanie kolekcie Order.



Vytvorte prázdny API kontrolér napísaný takto:


Zadajte do prehliadača nasledujúce:

Ak používate ASP.NET MVC4 na vývoj, môžete pri prvom spustení programu dostať nasledujúcu chybu:

[A] System.Web.WebPages.Razor.Configuration.HostSection nemožno vysielať do [B]System.Web.WebPages.Razor.Configuration.HostSection. Typ A je odvodený z "System.Web.WebPages.Razor, version=2.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (v "C:/Windows/Microsoft.Net/assembly/GAC_MSIL/ v kontexte "Default") System.Web.WebPages.Razor/v4.0_2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll"). Typ B je odvodený z "System.Web.WebPages.Razor, version=3.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (v kontexte "Default" v "C:/Windows/Microsoft.NET/Framework/v4.0.30319/ Dočasné ASP.NET súbory/vs/feb7ce97/a525d58a/asse


Je to preto, že pri sťahovaní najnovšej verzie ASP.NET Web API sa používa najnovšia verzia Razoru. V koreňovom adresári Web.config je potrebné nakonfigurovať nasledujúcu konfiguráciu:


Použite funkciu RoutePrefix


Ak chcete prefixovať všetky akcie v API kontroléri, môžete na API kontroléri umiestniť funkciu RoutePrefix.

Napríklad chceme, aby to bolo vo formáte takto: http://localhost/api/customers/1/orders


Upravte OrdersController týmto spôsobom.


Môžete tiež použiť ~ vo funkcii Route na prepísanie pravidiel prefixu akcie.



Prefix definovaný funkciou RoutePrefix môže mať aj parametrické premenné:


Smerovacie obmedzenia

Môžete obmedziť parametrické premenné v trase pomocou "{parameter variable name: constraint}".


Vyššie, ak je fragment premennej id typu int, smeruje sa na prvú akciu, a ak nie, smeruje sa na druhú akciu.

ASP.NET Vstavané obmedzenia Web API zahŕňajú:

{x:alpha} obmedzuje veľké a malé písmená
{x:bool}
{x:datetime}
{x:decimal}
{x:double}
{x:float}
{x:guid}
{x:int}
{x:dĺžka(6)}
{x:length(1,20)} obmedzuje rozsah dĺžky
{x:long}
{x:maxlength(10)}
{x:min(10)}
{x:range(10,50)}
{x:regex(regex)}


Pre parametrovú premennú môžete nastaviť viacero obmedzení súčasne:

Implementujte rozhranie IHttpRouteConstraint na prispôsobenie pravidiel obmedzení. Implementujte obmedzenie, ktoré nemôže byť 0.


Zaregistrujte vlastné obmedzenie vo WebApiConfig v priečinku App_Start.


Používajte vlastné obmedzenia.


Voliteľné parametre a ich predvolené hodnoty

Ak je premenná smerovacieho parametra voliteľná, musí mať aj predvolenú hodnotu.


Pridajte ? za obmedzenie na označenie voliteľného a nastavte predvolenú hodnotu id v parametroch metódy.

Stanovte názov pre trasu



Priorita smerovania

Priorita trasy nastavená vlastnosťou Route sa určuje na základe konvencií a vlastnosti RouteOrder.

Konvencie sú:

1. Statické fragmentové premenné
2. Fragmentové premenné s obmedzeniami
3. Fragmentujte premenné bez obmedzení
4. Premenná fragmentov divokej karty s obmedzeniami
5. Neobmedzené premenné fragmentov divokej karty

Predvolená hodnota vlastnosti RouteOrder je 0 a čím menšia je hodnota vlastnosti, tým vyššia je.


Vyššie uvedené poradie priorít smerovania je:

statická fragmentová premenná orders/details, hodnota vlastnosti RouteOrder je 0
orders/{id} s obmedzenými fragmentárnymi premennými s hodnotou 0 vo vlastnosti RouteOrder
orders/{customerName} je fragmentová premenná bez obmedzení a hodnota vlastnosti RouteOrder je 0
orders/{*date} je premenná fragmentov divokej karty s hodnotou 0 vo vlastnosti RouteOrder
príkazy/čakajúce vlastnosti RouteOrder hodnota 1






Predchádzajúci:Viesť záznam o tom, čo je možné zaplatiť kreditnou kartou
Budúci:Nebolo možné poskytnúť proces pre ADO.NET s pevným názvom "MySql.Data.MySqlClient"...
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com