Programovanie

Skúmanie smerovania vo webovom rozhraní API

ASP.Net Web API je ľahký rámec používaný na vytváranie bezstavových služieb HTTP. Webové API môžete použiť na návrh a implementáciu služieb RESTful, ktoré bežia na protokole HTTP. REST je architektonický štýl - súbor obmedzení používaných pri implementácii služieb bez štátnej príslušnosti. Web API sa už stalo zvolenou technológiou pre vytváranie ľahkých služieb HTTP. V tomto príspevku predstavím diskusiu o tom, ako funguje smerovanie vo webovom rozhraní API.

Pri vytváraní projektu webového rozhrania API v Visual Studio by ste pozorovali, že sa vytvorí aj projekt MVC. Podobne ako v prípade ASP.Net MVC je konfigurácia smerovania v projekte webového rozhrania API vyvolaná zo súboru Global.asax. Projekt webového API ukladá informácie o konfigurácii v triedach RouteConfig a WebApiConfig - obe sú obsiahnuté v priečinku Application_Start. Podobne ako v projekte MVC by ste vo svojom riešení pozorovali súbor RouteConfig.cs vytvorený v priečinku App_Start.

Za spracovanie požiadaviek HTTP je zodpovedný radič vo webovom API. Verejné metódy kontrolóra sú známe ako akčné metódy. Ihneď po prijatí požiadavky runtime webového rozhrania API nasmeruje požiadavku na príslušnú akciu na vybavenie žiadosti. Teraz, aby bolo možné určiť, ktorá akcia sa má vyvolať, runtime webového API využíva smerovaciu tabuľku. Na rozdiel od typickej aplikácie ASP.Net MVC, runtime webového rozhrania API smeruje prichádzajúce požiadavky na príslušný radič tak, že sa HTTP sloveso požiadavky zhoduje s príslušnou metódou akcie.

S ASP.Net 5 (má byť čoskoro uvedený ako súčasť Visual Studio 2015) existuje jednotný základný rámec - máte jediný rámec pre výstup, jeden rámec pre väzbu modelu a kanál s jedným filtrom. Teraz máte jedno zjednotené jadro pre ASP.Net MVC, webové rozhranie API ASP.Net a webové stránky ASP.Net. Teraz teda existuje iba jeden typ radiča, ktorý vybavuje požiadavky: je to spoločné pre vaše aplikácie ASP.Net MVC, ASP.Net Web API a ASP.Net.

Predvolená šablóna trasy MVC vyzerá takto:

{controller} / {action} / {id}

Naopak predvolená trasa webového rozhrania API vyzerá takto:

api / {controller} / {id}

Predvolená trasa vytvorená pri vytváraní nového projektu webového rozhrania API v balíku Visual Studio vyzerá takto:

verejná statická trieda WebApiConfig

{

verejný statický neplatný register (konfigurácia HttpConfiguration)

{

config.Routes.MapHttpRoute (

názov: "DefaultApi",

routeTemplate: "api / {controller} / {id}",

predvolené hodnoty: new {id = RouteParameter.Optional}

);

}

}

Všimnite si, ako je pred predvolenou cestou predpona „api“. Je dobrým zvykom definovať trasy svojej aplikácie Web API tak, že ich predponou „api“ odlíšite od štandardnej trasy MVC. Inou poznámkou je, že keď sa pozriete na predvolenú trasu pre projekt webového rozhrania API, nezobrazí sa vám parameter trasy „{action}“ - modul runtime webového rozhrania API mapuje požiadavky na príslušné akcie na základe slovesa HTTP žiadosti.

Definíciu trasy webového API však môžete upraviť tak, aby obsahovala parameter „{action}“. Nasledujúci úryvok kódu ilustruje, ako vyzerá upravená trieda WebApiConfig.

verejná statická trieda WebApiConfig

{

verejný statický neplatný register (konfigurácia HttpConfiguration)

{

config.Routes.MapHttpRoute (

názov: "DefaultApi",

routeTemplate: "api / {controller} / {action} / {id}",

predvolené hodnoty: new {id = RouteParameter.Optional}

);

}

}

Teraz, keď ste ako súčasť trasy zadali „{action}“, musíte pri vyvolaní metódy WebAPI určiť akciu. Zvážte nasledujúcu adresu URL: // idgservice / autori / 1

V tejto adrese URL je idgservice názov domény, kde bolo hostené WebAPI, autorov je názov radiča a ako parameter sa odovzdáva 1. To by však nefungovalo, ak ste v definícii trasy definovali „{action}“. V tomto prípade budete musieť pri volaní vášho WebAPI výslovne uviesť názov akcie. Tu je správna adresa URL, ktorá obsahuje názov akcie ako súčasť adresy URL: // idgservice / autori / GetAuthorDetails /

Upozorňujeme, že názov akcie vo vyššie uvedenej adrese URL je GetAuthorDetails a bol uvedený ako súčasť upravenej adresy URL.

Môžete tiež určiť metódu HTTP pre akciu pomocou atribútu HttpGet, HttpPut, HttpPost alebo HttpDelete. Fragment kódu uvedený nižšie ilustruje, ako je to možné dosiahnuť:

verejná trieda AuthorsController: ApiController

{

[HttpGet]

verejný autor GetAuthor (id) {}

}

Ak chcete povoliť pre akciu viac metód HTTP, môžete využiť atribút AcceptVerbs, ako je uvedené nižšie:

verejná trieda ProductsController: ApiController

{

[AcceptVerbs ("ZÍSKAŤ", "HLAVA")]

verejný autor GetAuthor (id) {}

}

Akciu môžete tiež prepísať pomocou atribútu ActionName, ako je uvedené v útržku kódu uvedenom nižšie:

verejná trieda AuthorsController: ApiController

{

[HttpGet]

[ActionName ("AuthorDetails")]

verejný autor GetAuthor (id) {}

}

Upozorňujeme, že metóde môžete zabrániť vyvolať ako akciu aj využitím atribútu NonAction, ako je uvedené nižšie.

verejná trieda AuthorsController: ApiController

{

[HttpGet]

[NonAction]

public Boolean ValidateLogin (id) {}

}

Copyright sk.verticalshadows.com 2024

$config[zx-auto] not found$config[zx-overlay] not found