Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 21930|Válasz: 1

[WebAPI] web API Útvonal tulajdonság definíció

[Linket másol]
Közzétéve 2018. 04. 28. 10:37:11 | | | |
ASP.NET Web API útválasztás egyszerűen fogalmazva az a folyamat, amely a klienskéréseket a megfelelő Műveletekhez köti le. A "ASP.NET Web API Practice Series 03, Routing Templates, Routing Conventions, Routing Settings" című cikkben tapasztaltam, hogy útvonalakat állítottam be sablonok, konvenciók és HTTP metódusok segítségével, és ennek az előnye, hogy az útvonali sablonok egyenletesen vannak elhelyezve a WebApiConfig osztályban a App_Start mappa alatt, ami kényelmes a menedzsment szempontjából, de hátránya, hogy nem elég rugalmas.


A REST mindent erőforrásként kezel, és néha egy gyerekerőforrás, mint például az Ügyfél és a Rendelések, szeretnének kérelmet beírni, mint például customers/1/orders, de ezt az útvonalat nehéz pusztán konvencióval elérni. Valójában ASP.NET Web API egy útvonal funkciót biztosít, amely közvetlenül csatlakoztatható az Akcióhoz, és nagyon rugalmas és intuitív használat.

Próbáljuk meg, hogyan lehet használni az Útvonal funkciót ASP.NET MVC4-ben.

Engedélyezzük az Útvonal attribútumot


Először be kell állítanod a WebApiConfig-ben.



A fenti MapHttpAttributeRoutes módszer csak az újabb ASP.NET Web API verziókban érhető el.Ha a verziód viszonylag alacsony, eltávolíthatod a régi verziót, és telepítheted a legfrissebb verziót a NuGet Package Manager konzolon keresztül.


Ezután a Global.asax-ban kommentelned kell a WebApiConfig eredeti regisztrációs módját, és új módszert kell alkalmazni, az alábbiak szerint:

Ekkor a projekt futtatása a következő hibát jelentheti:

Ez azért van, mert amikor letöltöttem ASP.NET Web API legújabb verzióját, az icrosoft legújabb verzióját is letöltöttem. AspNet.WebApi.HelpPage。 Le tudod távolítani a HelpPage legújabb verzióját, és letölteni a régebbi verziót.

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


Használja az Útvonal tulajdonságot

Hozz létre egy Cusomter osztályt.


Hozz létre egy Order osztályt.

Hozz létre egy Database osztályt, hogy megkapd a Order gyűjteményt.



Hozz létre egy üres API vezérlőt, amely így írt:


Írd be a böngésződben a következőket:

Ha ASP.NET MVC4-et használsz fejlesztéshez, a következő hibát kaphatod az első futtatáskor:

[A] A System.Web.WebPages.Razor.Configuration.HostSection nem lehet átadni a [B]System.Web.WebPages.Razor.Configuration.HostSection formátumba. Az A típus a "System.Web.WebPages.Razor, version=2.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (a "C:/Windows/Microsoft.Net/assembly/GAC_MSIL/ a "Default" kontextusban található) System.Web.WebPages.Razor/v4.0_2.0.0.0__31bf3856ad364e35/System.Web.WebPages.Razor.dll"). A B típus a "System.Web.WebPages.Razor, version=3.0.0.0, culture=neutral, PublicKeyToken=31bf3856ad364e35" (a "Default" kontextusban a "C:/Windows/Microsoft.NET/Framework/v4.0.30319/ Ideiglenes ASP.NET Files/vs/feb7ce97/a525d58a/asse


Ennek oka, hogy a Razor legújabb verzióját használják a ASP.NET Web API legújabb verziójának letöltésekor. A Web.config gyökérkönyvtárában a következő konfigurációt kell konfigurálnod:


Használd a RoutePrefix funkciót


Ha az összes Műveletet előtagolni szeretnéd egy API vezérlőben, akkor a RoutePrefix funkciót az API vezérlőre helyezheted.

Például azt szeretnénk, hogy ilyen formátumban legyen: http://localhost/api/customers/1/orders


Módosítsd a OrdersControllert így.


Az Útvonal funkcióban ~ billentyűt is használhatod, hogy felülírd az akció előtagszabályait.



A RoutePrefix funkció által definiált előtag paraméterváltozókkal is rendelkezhet:


Útvonaltervezési korlátok

Paraméterváltozókat korlátozhatsz egy útvonalon a "{parameter variable name: constraint}" segítségével.


Fent, ha a fragmentum változó azonosítója int típusú, akkor az első művelethez irányítják, ha nem, akkor a második akcióhoz.

ASP.NET Web API beépített korlátozásai a következők:

{x:alpha} korlátozza a nagy- és kisbetűket.
{x:bool}
{x:datetime}
{x:decimális}
{x:double}
{x:float}
{x:guid}
{x:int}
{x:length(6)}
{x:length(1,20)} korlátozza a hossztartományt
{x:long}
{x:maxlength(10)}
{x:min(10)}
{x:range(10,50)}
{x:regex(regex)}


Egy paraméterváltozóra egyszerre több korlátozást is beállíthatsz:

Valósítsd meg az IHttpRouteConstraint interfészt a korlátozási szabályok testreszabásához. Valósíts meg egy olyan korlátozást, amely nem lehet 0.


Regisztrálj egy egyedi korlátozást a WebApiConfig-ban a App_Start mappában.


Használj egyedi korlátozásokat.


Opcionális paraméterek és alapértelmezett értékeik

Ha egy útvonali paraméter változó opcionális, akkor a paraméternek alapértelmezett értéket is kell adni.


Add hozzá a ? gombot a korlát mögé, hogy jelölje az opcionálist, és állítsd be az id alapértelmezett értékét a metódusparaméterekben.

Határozz meg nevet az útvonalnak



Útválasztási prioritás

Az útvonal tulajdonság által meghatározott útvonalprioritást a konvenciók és a RouteOrder tulajdonság alapján határozzák meg.

A konvenciók a következők:

1. Statikus töredékváltozók
2. Töredékváltozók korlátokkal
3. Töredékváltozók korlátok nélkül
4. Wildcard fragment változó korlátokkal
5. Korlátlan vadkártya töredékváltozók

A RouteOrder tulajdonság alapértelmezett értéke 0, és minél kisebb az tulajdonság értéke, annál magasabb.


A fent említett útvonalválasztás prioritási sorrendje a következő:

orders/details statikus fragmentum változó, a RouteOrder tulajdonság értéke 0
orders/{id} korlátozott fragment változókkal a RouteOrder tulajdonságban 0 értékű
orders/{customerName} egy korlátok nélküli fragmentumváltozó, és a RouteOrder tulajdonság értéke 0
orders/{*date} egy wildcard fragment változó, amelynek értéke 0 a RouteOrder tulajdonságban
rendelések/függőben lévő útvonalOrder tulajdonságértéke 1






Előző:Vezesd a nyilvántartást arról, mit lehet hitelkártyával fizetni
Következő:Nem tudunk folyamatot biztosítani egy "MySql.Data.MySqlClient" nevű ADO.NET számára...
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com