REST i ASP.NET Core
När du bläddrar till en webbsida kommunicerar webbservern med webbläsaren med hjälp av HTML, CSS och JavaScript. Om du till exempel interagerar med sidan genom att skicka ett inloggningsformulär eller välja en köpknapp skickar webbläsaren tillbaka informationen till webbservern.
På liknande sätt kan webbservrar kommunicera med ett brett spektrum av klienter (webbläsare, mobila enheter, andra webbservrar med mera) med hjälp av webbtjänster. API-klienter kommunicerar med servern via HTTP och de två utbytesinformationen med hjälp av ett dataformat som JSON eller XML. API:er används ofta i ensidesprogram (SPA) som utför det mesta av användargränssnittslogik i en webbläsare. Kommunikation med webbservern sker främst via webb-API:er.
REST: Ett vanligt mönster för att skapa API:er med HTTP
REST (Representational State Transfer) är ett arkitekturformat för att skapa webbtjänster. REST-begäranden görs via HTTP. De använder samma HTTP-verb som webbläsare använder för att hämta webbsidor och skicka data till servrar. Verben är:
-
GET
: Hämta data från webbtjänsten. -
POST
: Skapa ett nytt dataobjekt på webbtjänsten. -
PUT
: Uppdatera ett dataobjekt på webbtjänsten. -
PATCH
: Uppdatera ett dataobjekt i webbtjänsten genom att beskriva en uppsättning instruktioner om hur objektet ska ändras. Exempelprogrammet i den här modulen använder inte det här verbet. -
DELETE
: Ta bort ett dataobjekt i webbtjänsten.
Webbtjänst-API:er som följer REST kallas RESTful-API:er. De definieras genom:
- En bas-URI.
- HTTP-metoder, till exempel
GET
,POST
,PUT
,PATCH
ellerDELETE
. - En medietyp för data, till exempel JavaScript Object Notation (JSON) eller XML.
Ett API behöver ofta tillhandahålla tjänster för några olika men relaterade saker. Vårt pizza-API kan till exempel hantera pizzor, kunder och beställningar. Vi använder routning för att mappa URI:er (enhetliga resursidentifierare) till logiska divisioner i koden, så att begäranden till dirigeras till https://localhost:5000/pizzaPizzaController
och begäranden dirigeras till https://localhost:5000/orderOrderController
.
Fördelar med att skapa API:er i ASP.NET Core
Med ASP.NET kan du använda samma ramverk och mönster för att skapa både webbsidor och tjänster. Du kan återanvända modellklasser och valideringslogik och även hantera både webbsidor och tjänster sida vid sida i samma projekt. Den här metoden har fördelar:
Enkel serialisering: ASP.NET har utformats för moderna webbupplevelser. Slutpunkter serialiserar automatiskt dina klasser till korrekt formaterad JSON ur rutan. Ingen särskild konfiguration krävs. Du kan anpassa serialisering för slutpunkter som har unika krav.
Autentisering och auktorisering: För säkerhet har API-slutpunkter inbyggt stöd för JSON-webbtoken (JWT) av branschstandard. Principbaserad auktorisering ger dig flexibiliteten att definiera kraftfulla regler för åtkomstkontroll i kod.
Routning tillsammans med koden: med ASP.NET kan du definiera vägar och verb i linje med koden med hjälp av attribut. Data från begärandesökvägen, frågesträngen och begärandetexten binds automatiskt till metodparametrar.
HTTPS som standard: HTTPS är en viktig del av moderna, professionella webb-API:er. Den förlitar sig på kryptering från slutpunkt till slutpunkt för att tillhandahålla sekretess och för att säkerställa att dina API-anrop inte fångas upp och ändras mellan klient och server.
ASP.NET tillhandahåller stöd för HTTPS direkt. Det genererar automatiskt ett testcertifikat och importerar det enkelt för att aktivera lokal HTTPS, så att du kan köra och felsöka dina program på ett säkert sätt innan du publicerar dem.
Dela kod och kunskap med .NET-appar
Du kan använda dina .NET-kunskaper och ekosystem för att dela logik från ditt webb-API till andra appar som skapats med .NET, inklusive mobil, webb, skrivbord och tjänster.
Testa webb-API:er med hjälp av .NET HTTP REPL
När du utvecklar en traditionell webbplats visar och testar du vanligtvis ditt arbete i en webbläsare. Webb-API:er accepterar och returnerar data i stället för HTML, så en webbläsare är inte det bästa webb-API-testverktyget.
Ett av de enklaste alternativen för att utforska och interagera med webb-API:er är .NET HTTP REPL (read-evaluate-print loop). Det är ett enkelt och populärt sätt att skapa interaktiva kommandoradsmiljöer. I nästa lektion skapar du ett enkelt webb-API och interagerar sedan med det med hjälp av .NET HTTP REPL.