Rest w usłudze ASP.NET Core
Podczas przeglądania strony internetowej serwer internetowy komunikuje się z przeglądarką przy użyciu języków HTML, CSS i JavaScript. Jeśli na przykład wchodzisz w interakcję ze stroną, przesyłając formularz logowania lub wybierając przycisk kup, przeglądarka wysyła informacje z powrotem do serwera internetowego.
Podobnie serwery internetowe mogą komunikować się z szeroką gamą klientów (przeglądarek, urządzeń przenośnych, innych serwerów internetowych i innych) przy użyciu usług internetowych. Klienci interfejsu API komunikują się z serwerem za pośrednictwem protokołu HTTP, a dwa wymieniają informacje przy użyciu formatu danych, takiego jak JSON lub XML. Interfejsy API są często używane w aplikacjach jednostronicowych (SPA), które wykonują większość logiki interfejsu użytkownika w przeglądarce internetowej. Komunikacja z serwerem internetowym odbywa się głównie za pośrednictwem internetowych interfejsów API.
REST: typowy wzorzec tworzenia interfejsów API za pomocą protokołu HTTP
Representational State Transfer (REST) to styl architektury do tworzenia usług internetowych. Żądania REST są wysyłane za pośrednictwem protokołu HTTP. Używają tych samych czasowników HTTP używanych przez przeglądarki internetowe do pobierania stron internetowych i wysyłania danych na serwery. Czasowniki to:
GET
: pobieranie danych z usługi internetowej.POST
: Utwórz nowy element danych w usłudze internetowej.PUT
: Aktualizowanie elementu danych w usłudze internetowej.PATCH
: Zaktualizuj element danych w usłudze internetowej, opisując zestaw instrukcji dotyczących sposobu modyfikowania elementu. Przykładowa aplikacja w tym module nie używa tego zlecenia.DELETE
: Usuwanie elementu danych w usłudze internetowej.
Interfejsy API usługi internetowej, które są zgodne z interfejsem REST, są nazywane interfejsami API RESTful. Są one definiowane za pomocą:
- Podstawowy identyfikator URI.
- Metody HTTP, takie jak
GET
,POST
,PUT
,PATCH
lubDELETE
. - Typ nośnika danych, taki jak JavaScript Object Notation (JSON) lub XML.
Interfejs API często musi dostarczać usługi dla kilku różnych, ale powiązanych rzeczy. Na przykład nasz interfejs API pizzy może zarządzać pizzami, klientami i zamówieniami. Używamy routingu do mapowania identyfikatorów URI (jednolitych identyfikatorów zasobów) na podziały logiczne w naszym kodzie, dzięki czemu żądania do https://localhost:5000/pizza usługi są kierowane do PizzaController
OrderController
adresu i do których https://localhost:5000/order są kierowane żądania .
Zalety tworzenia interfejsów API w środowisku ASP.NET Core
Dzięki ASP.NET możesz użyć tej samej struktury i wzorców do tworzenia stron internetowych i usług. Klasy modelu i logika walidacji można używać ponownie, a nawet obsługiwać strony internetowe i usługi obok siebie w tym samym projekcie. Takie podejście ma następujące korzyści:
Prosta serializacji: ASP.NET została zaprojektowana pod kątem nowoczesnych środowisk internetowych. Punkty końcowe automatycznie serializują klasy w celu poprawnego sformatowania kodu JSON poza polem. Nie jest wymagana żadna specjalna konfiguracja. Serializacji można dostosować dla punktów końcowych, które mają unikatowe wymagania.
Uwierzytelnianie i autoryzacja: W przypadku zabezpieczeń punkty końcowe interfejsu API mają wbudowaną obsługę standardowych branżowych tokenów internetowych JSON (JWTs). Autoryzacja oparta na zasadach zapewnia elastyczność definiowania zaawansowanych reguł kontroli dostępu w kodzie.
Routing obok kodu: ASP.NET umożliwia definiowanie tras i czasowników wbudowanych w kodzie przy użyciu atrybutów. Dane ze ścieżki żądania, ciągu zapytania i treści żądania są automatycznie powiązane z parametrami metody.
Protokół HTTPS domyślnie: HTTPS jest ważną częścią nowoczesnych, profesjonalnych internetowych interfejsów API. Opiera się na kompleksowej szyfrowania w celu zapewnienia prywatności i zapewnienia, że wywołania interfejsu API nie są przechwytywane i zmieniane między klientem a serwerem.
ASP.NET zapewnia obsługę gotowego protokołu HTTPS. Automatycznie generuje certyfikat testowy i łatwo importuje go w celu włączenia lokalnego protokołu HTTPS, dzięki czemu można bezpiecznie uruchamiać i debugować aplikacje przed ich opublikowaniem.
Udostępnianie kodu i wiedzy za pomocą aplikacji platformy .NET
Możesz użyć umiejętności i ekosystemu platformy .NET, aby udostępnić logikę z internetowego interfejsu API do innych aplikacji utworzonych za pomocą platformy .NET, w tym aplikacji mobilnych, internetowych, klasycznych i usług.
Testowanie internetowych interfejsów API przy użyciu środowiska REPL HTTP platformy .NET
Podczas tworzenia tradycyjnej witryny internetowej zwykle przeglądasz i testujesz swoją pracę w przeglądarce internetowej. Internetowe interfejsy API akceptują i zwracają dane, a nie HTML, więc przeglądarka internetowa nie jest najlepszym narzędziem do testowania interfejsu API sieci Web.
Jedną z najprostszych opcji eksplorowania i interakcji z internetowymi interfejsami API jest .NET HTTP REPL (pętla read-evaluate-print). Jest to prosty i popularny sposób tworzenia interaktywnych środowisk wiersza polecenia. W następnej lekcji utworzysz prosty internetowy interfejs API, a następnie będziesz z nim korzystać przy użyciu środowiska REPL HTTP platformy .NET.