Implementera en anpassad Server-Side REST-slutpunkt
Gäller för: Windows Azure Pack
På serversidan finns en uppsättning REST-API:er som anropas av klientsidan för att både hämta data och utföra åtgärder. Båda dessa typer av åtgärder anropar vanligtvis en serverdel för att hämta faktiska data eller utföra den faktiska åtgärden. Kontrollanten, som implementerar API:et, är vanligtvis en ASP.NET MVC-styrenhet som returnerar JSON, och serverdelen är vanligtvis Service Management API, men kan vara alla andra tjänster som är tillgängliga från en ASP.NET MVC-webbplats.
Viktigt
Hello World-exemplet innehåller en exempelimplementering på serversidan.
Både klientsidan och serversidan kan finnas i samma Visual Studio projekt och distribueras till samma hanteringsportaler.
Kontrollantklass
Kontrollantklassen är en instans av en av de ASP.NET abstrakta MVC-standardklasserna Controller eller AsyncController. Det markeras vanligtvis med attributen [RequireHttps] för att säkerställa att endast säkra anslutningar tillåts, [OutputCache] för att neka cachelagring av svar och [PortalExceptionHandler] som beskrivs i följande avsnitt om hanteringsfel . För att förhindra nätfiskeattacker markeras metoderna i kontrollanten med [HttpPost]. Detta tillåter inte HTTP GET-begäranden när HTTP POST-begäranden tillåts. Varken klient- eller serversidans ramverk begränsar hur server- och klientsidorna kommunicerar med varandra, med undantag för var interaktion med ramverkets Grid-widget på klientsidan krävs. I så fall kan du läsa avsnittet Returning Datasets (Returnera datauppsättningar ).
Returnerar datauppsättningar
En datauppsättning är en lista över data som ska visas av användargränssnittet, vanligtvis i en lista (rutnätsvy). Det skiljer sig från ett standardsvar eftersom ramverket på klientsidan hanterar hämtningen och visar det i ett rutnät. Om en metod returnerar en datauppsättning, som vanligtvis representeras i användargränssnittet som en lista, rekommenderar vi att du använder metoden Controller.JsonDataSet som i följande exempel:
return this.JsonDataSet(listOfData);
Detta omsluter automatiskt listOfData-datauppsättningen i en JSON-omslutning som är lämplig för bearbetning av ramverket på klientsidan. Information om implementeringen på klientsidan finns i Visa ett rutnät i ett Windows Azure Pack Management Portal-tillägg.
Utföra kommandon
Metoder som utför kommandon i kontrollanten returnerar vanligtvis ett JSON-objekt för att visa att åtgärden fungerade. Detta kan vara så enkelt som ett booleskt tecken på framgång, eller så komplext som de data som har ändrats till följd av åtgärden. Ingenting krävs dock av klient- eller serversidans ramverk.
Hantera fel
Undantag som utlöses av kontrollanten måste vanligtvis visas för användaren för ytterligare åtgärder eller uppföljning. Det enklaste sättet att göra detta på serversidan är att tillämpa attributet [PortalExceptionHandler] på din klass. Eventuella undantag av typen PortalException översätts till korrekt modellerad JSON, har rätt HTTP-felkod och returneras till klientsidan för enkel visning med ett felmeddelande. Ett exempel på JSON som returnerades vid fel med attributet [PortalExceptionHandler] finns nedan:
{
"message": "Fake Error",
"ErrorMessage": "Fake Error",
"httpStatusCode": "InternalServerError",
"operationTrackingId": null,
"stackTrace": null,
}
Alla andra typer av undantag visas som ett tomt HTTP 500-fel för att undvika att exponera intern information för användaren. Dessutom skickas stackspårningar endast om portalen som tillägget körs i har DevelopmentMode inställt på sant. Detta kan ändras i hanteringsportalens web.config-fil. Mer information finns i avsnittet Användargränssnitt för fel som returneras från API-anrop.
Se även
Windows Tillägg för användargränssnitt i Azure Pack Management Portal
Visa ett rutnät i ett Windows Azure Pack Management Portal-tillägg
Felsöka ett Windows Azure Pack Management Portal-tillägg