Co to są Restful Web Services?
Restful Web Services to lekka, łatwa w utrzymaniu i skalowalna usługa oparta na architekturze REST. Restful Web Service, udostępniaj API z aplikacji w bezpieczny, jednolity, bezstanowy sposób klientowi wywołującemu. Klient wywołujący może wykonywać predefiniowane operacje przy użyciu usługi Restful. Podstawowym protokołem dla REST jest HTTP. REST oznacza REpresentational State Transfer.
W tym samouczku dotyczącym interfejsu API REST dowiesz się:
- Kluczowe elementy RESTful
- Metody uspokajające
- Dlaczego spokojny
- Spokojna architektura
- Zasady i ograniczenia RestFul
- Utwórz swoją pierwszą usługę sieciową Restful w programie ASP.NET
- Uruchomienie pierwszej usługi internetowej Restful
- Testowanie Twojej pierwszej usługi internetowej Restful
Kluczowe elementy RESTful
Usługi sieciowe REST przeszły naprawdę długą drogę od ich powstania. W 2002 roku konsorcjum internetowe opublikowało definicję usług internetowych WSDL i SOAP. Stworzyło to standard implementacji usług internetowych.
W 2004 roku konsorcjum internetowe wydało również definicję dodatkowego standardu o nazwie RESTful. W ciągu ostatnich kilku lat ten standard stał się dość popularny. Jest używany przez wiele popularnych witryn internetowych na całym świecie, w tym Facebook i Twitter.
REST to sposób na dostęp do zasobów, które znajdują się w określonym środowisku. Na przykład możesz mieć serwer, który może przechowywać ważne dokumenty, zdjęcia lub filmy. Wszystko to jest przykładem zasobów. Jeśli klient, powiedzmy, przeglądarka internetowa potrzebuje któregokolwiek z tych zasobów, musi wysłać żądanie do serwera, aby uzyskać dostęp do tych zasobów. Teraz usługi REST definiują sposób, w jaki można uzyskać dostęp do tych zasobów.
Kluczowe elementy implementacji RESTful są następujące:
-
Zasoby - pierwszym kluczowym elementem jest sam zasób. Załóżmy, że aplikacja internetowa na serwerze ma zapisy kilku pracowników. Załóżmy, że adres URL aplikacji internetowej to http://demo.guru99.com . Teraz, aby uzyskać dostęp do zasobu rekordu pracownika za pośrednictwem usług REST, można wydać polecenie http://demo.guru99.com/employee/1 - Polecenie to nakazuje serwerowi WWW podanie danych pracownika, którego numer pracownika to 1.
-
Czasowniki żądania - opisują, co chcesz zrobić z zasobem. Przeglądarka wydaje komendę GET, aby poinstruować punkt końcowy, który chce pobrać dane. Jednak dostępnych jest wiele innych czasowników, w tym takie jak POST, PUT i DELETE. Tak więc w przypadku przykładu http://demo.guru99.com/employee/1 przeglądarka internetowa faktycznie wydaje czasownik GET, ponieważ chce uzyskać szczegółowe informacje dotyczące rekordu pracownika.
-
Nagłówki żądań - to dodatkowe instrukcje wysyłane wraz z żądaniem. Mogą one określać typ wymaganej odpowiedzi lub szczegóły autoryzacji.
-
Treść żądania - dane są wysyłane wraz z żądaniem. Dane są zwykle wysyłane w żądaniu, gdy żądanie POST jest kierowane do usług internetowych REST. W wywołaniu POST klient w rzeczywistości informuje usługi sieciowe REST, że chce dodać zasób do serwera. W związku z tym treść żądania zawierałaby szczegóły zasobu, który ma zostać dodany do serwera.
-
Treść odpowiedzi - jest to główna część odpowiedzi. Tak więc w naszym przykładzie RESTful API, gdybyśmy odpytali serwer WWW za pośrednictwem żądania http://demo.guru99.com/employee/1 , serwer WWW mógłby zwrócić dokument XML ze wszystkimi szczegółami pracownika w odpowiedzi Ciało.
-
Kody stanu odpowiedzi - te kody to ogólne kody, które są zwracane wraz z odpowiedzią z serwera WWW. Przykładem jest kod 200, który jest normalnie zwracany, jeśli nie ma błędu podczas zwracania odpowiedzi do klienta.
Metody uspokajające
Poniższy diagram pokazuje głównie wszystkie czasowniki (POST, GET, PUT i DELETE) oraz przykład REST API ich znaczenia.
Załóżmy, że mamy zdefiniowaną usługę sieciową RESTful w lokalizacji. http://demo.guru99.com/employee . Gdy klient wysyła żądanie do tej usługi internetowej, może określić dowolne z normalnych czasowników HTTP GET, POST, DELETE i PUT. Poniżej opisano, co by się stało, gdyby klient wysłał odpowiednie czasowniki.
- POST - zostanie użyty do utworzenia nowego pracownika przy użyciu usługi internetowej RESTful
- POBIERZ - posłuży do pobrania listy wszystkich pracowników korzystających z usługi internetowej RESTful
- PUT - zostanie użyty do zaktualizowania wszystkich pracowników korzystających z usługi internetowej RESTful
- USUŃ - posłuży do usunięcia wszystkich pracowników korzystających z usług RESTful
Spójrzmy z perspektywy tylko jednej płyty. Załóżmy, że istniał rekord pracownika o numerze pracownika 1.
Poniższe działania miałyby swoje znaczenie.
- POST - To nie ma zastosowania, ponieważ pobieramy dane pracownika 1, które zostały już utworzone.
- POBIERZ - zostanie użyty do pobrania danych pracownika o numerze pracownika 1 przy użyciu usługi internetowej RESTful
- PUT - zostanie użyty do zaktualizowania danych pracownika z Pracownikiem nr 1 przy użyciu usługi internetowej RESTful
- USUŃ - służy do usuwania danych pracownika o numerze pracownika 1
Dlaczego spokojny
Spokojny zyskał popularność głównie z następujących powodów:
- Heterogeniczne języki i środowiska - jest to jeden z podstawowych powodów, który jest taki sam, jak widzieliśmy również w przypadku protokołu SOAP.
- Umożliwia komunikację między aplikacjami internetowymi zbudowanymi w różnych językach programowania
- Z pomocą usług Restful te aplikacje internetowe mogą znajdować się w różnych środowiskach, niektóre mogą działać w systemie Windows, a inne w systemie Linux.
Ale ostatecznie, bez względu na otoczenie, efekt końcowy powinien być zawsze taki sam, że powinni móc rozmawiać ze sobą. Spokojne usługi internetowe oferują tę elastyczność aplikacjom zbudowanym w różnych językach programowania i platformach do komunikacji między sobą.
Poniższe zdjęcie przedstawia przykład aplikacji internetowej, która wymaga komunikacji z innymi aplikacjami, takimi jak Facebook, Twitter i Google.
Gdyby aplikacja kliencka musiała współpracować z witrynami takimi jak Facebook, Twitter itp., Prawdopodobnie musieliby wiedzieć, na jakim języku są zbudowane Facebook, Google i Twitter, a także na jakiej platformie są zbudowane.
Na tej podstawie możemy napisać kod interfejsu dla naszej aplikacji internetowej, ale może to okazać się koszmarem.
Facebook, Twitter i Google udostępniają swoją funkcjonalność w postaci usług internetowych Restful. Dzięki temu każda aplikacja kliencka może wywoływać te usługi internetowe za pośrednictwem protokołu REST.
- Wydarzenie urządzeń - w dzisiejszych czasach wszystko musi działać na urządzeniach mobilnych, niezależnie od tego, czy jest to urządzenie mobilne, notebooki, czy nawet systemy samochodowe.
Czy potrafisz sobie wyobrazić, ile wysiłku włożono w kodowanie aplikacji na tych urządzeniach, aby komunikowały się z normalnymi aplikacjami internetowymi? Ponownie Restful API może uprościć to zadanie, ponieważ jak wspomniano w punkcie 1, naprawdę nie musisz wiedzieć, jaka jest podstawowa warstwa urządzenia.
- Wreszcie wydarzenie w chmurze - wszystko przenosi się do chmury. Aplikacje powoli przechodzą do systemów opartych na chmurze, takich jak Azure czy Amazon. Azure i Amazon zapewniają wiele interfejsów API opartych na architekturze Restful. Dlatego aplikacje muszą być teraz tworzone w taki sposób, aby były kompatybilne z chmurą. Dlatego, ponieważ wszystkie architektury oparte na chmurze działają na zasadzie REST, bardziej sensowne jest, aby usługi internetowe były programowane w architekturze opartej na usługach REST, aby jak najlepiej wykorzystać usługi oparte na chmurze.
Spokojna architektura
Aplikacja lub architektura uznawana za RESTful lub REST-style ma następujące cechy
- Stan i funkcjonalność są podzielone na zasoby rozproszone - oznacza to, że każdy zasób powinien być dostępny za pośrednictwem zwykłych poleceń HTTP GET, POST, PUT lub DELETE. Więc jeśli ktoś chciałby pobrać plik z serwera, powinien móc wysłać żądanie GET i pobrać plik. Jeśli chcą umieścić plik na serwerze, powinni mieć możliwość wysłania żądania POST lub PUT. I wreszcie, jeśli chcieli usunąć plik z serwera, wysyłali żądanie DELETE.
- Architektura jest typu klient / serwer, bezstanowa, warstwowa i obsługuje buforowanie -
- Klient-serwer to typowa architektura, w której serwer może być serwerem WWW obsługującym aplikację, a klient może być tak prosty, jak przeglądarka internetowa.
- Bezstanowy oznacza, że stan aplikacji nie jest utrzymywany w REST.
Na przykład, jeśli usuniesz zasób z serwera za pomocą polecenia DELETE, nie możesz oczekiwać, że informacje o usunięciu zostaną przekazane do następnego żądania.
Aby upewnić się, że zasób został usunięty, musisz wysłać żądanie GET. Żądanie GET zostanie użyte, aby najpierw pobrać wszystkie zasoby na serwerze. Po czym należałoby sprawdzić, czy zasób został faktycznie usunięty.
Zasady i ograniczenia RESTFul
Architektura REST opiera się na kilku cechach, które omówiono poniżej. Każda usługa sieciowa RESTful musi być zgodna z poniższymi cechami, aby mogła nazywać się RESTful. Te cechy są również znane jako zasady projektowania, których należy przestrzegać podczas pracy z usługami opartymi na RESTful.
- RESTFul klient-serwer
Jest to najbardziej podstawowy wymóg architektury opartej na REST. Oznacza to, że serwer będzie miał usługę internetową zgodną z REST, która zapewni klientowi wymaganą funkcjonalność. Klient wysyła żądanie do usługi internetowej na serwerze. Serwer albo odrzuci żądanie, albo zastosuje się i dostarczy odpowiednią odpowiedź klientowi.
- Bezpaństwowcy
Koncepcja bezstanów oznacza, że klient musi zadbać o to, aby wszystkie wymagane informacje były dostarczane do serwera. Jest to wymagane, aby serwer mógł odpowiednio przetworzyć odpowiedź. Serwer nie powinien przechowywać żadnych informacji między żądaniami klienta. To bardzo prosta, niezależna sekwencja pytań i odpowiedzi. Klient zadaje pytanie, a serwer odpowiednio na nie odpowiada. Klient zada kolejne pytanie. Serwer nie zapamięta poprzedniego scenariusza pytań i odpowiedzi i będzie musiał samodzielnie odpowiedzieć na nowe pytanie.
- Pamięć podręczna
Koncepcja pamięci podręcznej ma pomóc w rozwiązaniu problemu bezpaństwowości, który został opisany w ostatnim punkcie. Ponieważ każde żądanie klienta serwera jest z natury niezależne, czasami klient może ponownie poprosić serwer o to samo żądanie. Dzieje się tak, mimo że prosił o to już w przeszłości. To żądanie trafi do serwera, a serwer udzieli odpowiedzi. Zwiększa to ruch w sieci. Pamięć podręczna to koncepcja zaimplementowana na kliencie w celu przechowywania żądań, które zostały już wysłane do serwera. Więc jeśli to samo żądanie zostanie wysłane przez klienta, zamiast iść do serwera, trafi do pamięci podręcznej i otrzyma wymagane informacje. Oszczędza to ilość ruchu sieciowego tam iz powrotem od klienta do serwera.
- System warstwowy
Koncepcja systemu warstwowego polega na tym, że między klientem a rzeczywistym serwerem obsługującym usługę sieciową RESTFul można wstawić dowolną dodatkową warstwę, taką jak warstwa oprogramowania pośredniego (warstwa oprogramowania pośredniego jest miejscem, w którym tworzona jest cała logika biznesowa). Może to być dodatkowa usługa utworzony, z którym klient może wchodzić w interakcje, zanim wykona wywołanie usługi internetowej). Ale wprowadzenie tej warstwy musi być przezroczyste, aby nie zakłócało interakcji między klientem a serwerem.
- Interfejs / Jednolita umowa
Jest to podstawowa technika działania usług sieciowych RESTful. RESTful zasadniczo działa na warstwie WWW HTTP i używa poniższych kluczowych czasowników do pracy z zasobami na serwerze
- POST - aby utworzyć zasób na serwerze
- POBIERZ - Aby pobrać zasób z serwera
- PUT - aby zmienić stan zasobu lub go zaktualizować
- USUŃ - aby usunąć lub usunąć zasób z serwera
Utwórz swoją pierwszą usługę sieciową Restful w programie ASP.NET
Teraz w tym samouczku interfejsu API REST dowiemy się, jak utworzyć usługę internetową Restful w ASP.NET:
Usługi internetowe można tworzyć w różnych językach. Do tworzenia usług opartych na REST można użyć wielu zintegrowanych środowisk programistycznych.
W tym przykładzie RESTful API utworzymy naszą aplikację REST w .Net przy użyciu Visual Studio. W naszym przykładzie dla usług internetowych Restful zamierzamy emulować następujący przykład usługi REST.
Będziemy mieć usługę sieciową Restful, która będzie działać na poniższym zestawie danych.
Poniższy zestaw danych przedstawia przykład REST API, w którym firma ujawnia samouczki, które mają w oparciu o Tutorialid.
Tutorialid | TutorialName |
0 | Tablice |
1 | Kolejki |
2 | Półki na książki |
W naszym samouczku dotyczącym interfejsu API REST zaimplementujemy poniższe czasowniki Restful.
- POBIERZ samouczek - gdy klient wywoła ten Restful API, otrzyma cały zestaw samouczków dostępnych w usłudze sieci Web.
- POBIERZ Tutorial / Tutorialid - gdy klient wywoła ten Restful API, otrzyma nazwę Tutorial na podstawie Tutorialid wysłanego przez klienta.
- POST Tutorial / Tutorialname - gdy klient wywoła ten Restful API, klient prześle żądanie wstawienia Tutorialname. Usługa internetowa doda następnie przesłaną nazwę samouczka do kolekcji.
- USUŃ Tutorial / Tutorialid - gdy klient wywoła ten Restful API, klient prześle żądanie usunięcia Tutorialname na podstawie Tutorialid. Usługa internetowa usunie następnie przesłaną nazwę samouczka z kolekcji.
Wykonajmy poniższe kroki w tym samouczku RESTful API, aby utworzyć nasze pierwsze usługi internetowe RESTful, które wykonują powyższą implementację.
Krok 1) Pierwszym krokiem jest utworzenie pustej aplikacji internetowej Asp.Net. W programie Visual Studio 2013 kliknij opcję menu Plik-> Nowy projekt.
Po kliknięciu opcji Nowy projekt program Visual Studio wyświetli kolejne okno dialogowe umożliwiające wybranie typu projektu i podanie niezbędnych szczegółów projektu. Zostało to wyjaśnione w następnym kroku tego samouczka interfejsu API RESTful
Krok 2) Na tym etapie
- Upewnij się, że najpierw wybierzesz szablon sieci Web C # usług RESTful dla aplikacji sieci Web ASP.NET. Projekt musi być tego typu, aby można było utworzyć projekt usług internetowych. Wybierając te opcje, Visual Studio wykona niezbędne kroki, aby dodać wymagane pliki, które są wymagane przez dowolną aplikację internetową.
- Nadaj projektowi nazwę, która w naszym przypadku została nadana jako „Webservice.REST”.
- Następnie podaj lokalizację, w której będą przechowywane pliki projektu.
Po zakończeniu zobaczysz plik projektu utworzony w eksploratorze rozwiązań w programie Visual Studio 2013.
Krok 3) Następnym krokiem jest utworzenie pliku usługi sieciowej, który będzie miał usługę sieciową RESTful
- Najpierw kliknij prawym przyciskiem myszy plik projektu, jak pokazano poniżej
- Na tym etapie
- Kliknij prawym przyciskiem myszy plik projektu
- Wybierz opcję „Dodaj-> nowy element”.
W wyświetlonym oknie dialogowym należy wykonać następujące czynności
- Wybierz opcję usługi WCF (z obsługą Ajax) - wybierz plik tego typu, powoduje to, że program Visual Studio dodaje kod podstawowy, który pomaga utworzyć usługę internetową zgodną z REST. WCF oznacza Windows Communication Foundation. WCF to biblioteka dla aplikacji na różnych platformach lub tej samej platformie do komunikacji za pośrednictwem różnych protokołów, takich jak TCP, HTTP, HTTPS. Ajax to w zasadzie asynchroniczny JavaScript i XML. AJAX umożliwia asynchroniczne aktualizowanie stron internetowych poprzez wymianę niewielkich ilości danych z serwerem w tle.
- Następnie podaj nazwę usługi, którą w naszym przypadku jest TutorialService.
- Na koniec kliknij przycisk Dodaj, aby dodać usługę do rozwiązania.
Krok 4) Następnym krokiem jest faktyczna zmiana konfiguracji, aby umożliwić temu projektowi zakończenie pracy z usługami sieciowymi RESTful. Wymaga to wprowadzenia zmian w pliku o nazwie Web.config . Ten plik pojawia się w tym samym oknie, co plik projektu usługi sieci Web. Plik Web.config zawiera wszystkie konfiguracje, które sprawiają, że aplikacja internetowa działa tak, jak powinna. Wprowadzana zmiana w rzeczywistości umożliwia aplikacji wysyłanie i odbieranie danych jako czystą usługę sieciową RESTful.
- Kliknij plik Web.config, aby otworzyć kod
- Znajdź wiersz
- Zmień wiersz na
Krok 5) Następnym krokiem w tym samouczku RESTful API jest dodanie naszego kodu do implementacji. Cały poniższy kod musi zostać zapisany w pliku TutorialService.svc
- Pierwszy bit to dodanie kodu reprezentującego nasze dane, które będą używane w naszym programie. Mamy więc listę zmiennych łańcuchowych z wartościami „Tablice”, „Kolejki” i „Stosy”. Będzie to nazwa samouczków dostępnych w naszej usłudze hostingowej.
namespace Webservice.REST{[ServiceContract(Namespace = "")][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowedpublic class TutorialService{private static Listlst = new List (new String[] {"Arrays","Queues","Stacks"});
Krok 6) Następnie zdefiniujemy kod dla naszej metody GET. Ten kod będzie również znajdował się w tym samym pliku TutorialService.svc. Ten kod będzie uruchamiany za każdym razem, gdy wywołasz usługę z naszej przeglądarki.
Poniższa metoda zostanie wykorzystana do spełnienia poniższego scenariusza
- Jeśli użytkownik chce mieć listę wszystkich dostępnych samouczków, poniższy kod musiałby zostać napisany, aby to osiągnąć.
[WebGet(UriTemplate="/Tutorial")]public String GetAllTutorial(){int count = 1st.Count;String TutorialList = "";for (int i = 0; i < count; i++)TutorialList = TutorialList + lst[i] + ",";return TutorialList;}
Objaśnienie kodu: -
- Najważniejsza jest pierwsza linia kodu. Służy do określenia, jak możemy wywołać tę metodę za pomocą adresu URL. Jeśli więc link do naszej usługi internetowej to http: // localhost: 52645 / TutorialService.svc i jeśli dodamy „/ Tutorial” do adresu URL jako http: // localhost: 52645 / TutorialService.svc / Tutorial , powyższy kod zostanie wywołany. Atrybut „WebGet” jest parametrem, który pozwala tej metodzie być metodą RESTful, dzięki czemu można ją wywołać za pomocą czasownika GET.
- Ta sekcja kodu służy do przeglądania naszej listy ciągów w zmiennej „lst” i zwracania ich wszystkich do programu wywołującego.
Krok 7) Poniższy kod zapewnia, że jeśli wywołanie GET zostanie wykonane do usługi samouczka z identyfikatorem samouczka, zwróci odpowiednią nazwę samouczka na podstawie identyfikatora samouczka.
[WebGet (UriTemplate = "/Tutorial/{Tutorialid}")]public String GetTutorialbyID(String Tutorialid){int pid;Int32.TryParse(Tutorialid, out pid);return lst[pid];}
Objaśnienie kodu: -
- Najważniejsza jest pierwsza linia kodu. Służy do określenia, jak możemy wywołać tę metodę za pomocą adresu URL. Jeśli więc link do naszej usługi internetowej to http: // localhost: 52645 / TutorialService.svc i jeśli dołączymy „/ Tutorial / {Tutorialid}” do adresu URL, będziemy mogli wywołać usługę internetową jako http: //localhost:52645/TutorialService.svc/Tutorial/1 jako przykład. Usługa sieciowa musiałaby wówczas zwrócić nazwę samouczka, która miała identyfikator samouczka # 1.
- Ta sekcja kodu służy do zwracania „nazwy samouczka”, której identyfikator samouczka został przekazany do metody sieciowej.
- Domyślnie należy pamiętać, że wszystko, co jest przekazywane do adresu URL w przeglądarce, jest ciągiem.
- Ale musisz pamiętać, że indeks na naszej liście musi być liczbą całkowitą, więc dodajemy niezbędny kod, aby najpierw przekonwertować Tutorialid na liczbę całkowitą, a następnie użyć go, aby uzyskać dostęp do pozycji indeksu na naszej liście i
- Następnie odpowiednio zwróć wartość do programu wywołującego.
Krok 8) Następnym krokiem jest napisanie kodu dla naszej metody POST. Ta metoda zostanie wywołana za każdym razem, gdy będziemy chcieli dodać wartość ciągu do naszej listy samouczków za pomocą metody POST. Na przykład, jeśli chcesz dodać nazwę samouczka „Testowanie oprogramowania”, musisz użyć metody POST.
Objaśnienie kodu: -
- Pierwsza linia to atrybut „WebInvoke”, który został dołączony do naszej metody. Umożliwia to wywołanie metody za pośrednictwem wywołania POST. Atrybuty RequestFormat i ResponseFormat muszą być wymienione jako JSON, ponieważ podczas wysyłania wartości do usługi sieciowej RESTFul wartości muszą być w tym formacie.
- Drugi wiersz kodu służy do dodawania wartości ciągu przekazanej przez wywołanie POST do naszej istniejącej listy ciągów znaków w samouczku.
Krok 9) Na koniec dodamy naszą metodę do obsługi operacji DELETE. Ta metoda zostanie wywołana za każdym razem, gdy będziemy chcieli usunąć istniejącą wartość ciągu z naszej listy samouczków za pomocą metody DELETE.
[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Ison,UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,BodyStyle = WebMessageBodyStyle.Wrapped)]public void DeleteTutorial(String Tutorialid){int pid;Int32.TryParse(Tutorialid, out pid);1st.RemoveAt(pid);}
Objaśnienie kodu: -
- Pierwsza linia to atrybut „WebInvoke”, który został dołączony do naszej metody. Umożliwia to wywołanie metody za pośrednictwem wywołania POST. Atrybuty RequestFormat i ResponseFormat muszą być wymienione jako JSON, ponieważ podczas wysyłania wartości do usługi sieciowej RESTFul wartości muszą być w tym formacie. Zauważ, że parametr Method jest ustawiany na „DELETE”. Oznacza to, że za każdym razem, gdy wydamy czasownik DELETE, zostanie wywołana ta metoda.
- Druga linia kodu służy do pobrania Tutorialid wysłanego przez wywołanie DELETE, a następnie usunięcia tego identyfikatora z naszej listy. (Funkcja Int32 w kodzie służy do konwersji identyfikatora samouczka ze zmiennej łańcuchowej na liczbę całkowitą).
Uruchomienie pierwszej usługi internetowej Restful
Teraz, gdy stworzyliśmy całą naszą usługę internetową w powyższej sekcji. Zobaczmy, jak możemy uruchomić usługę samouczka, aby można ją było wywołać z dowolnego klienta.
Aby uruchomić usługę sieciową, wykonaj poniższe czynności
Krok 1) Kliknij prawym przyciskiem myszy plik projektu - Webservice.REST
Krok 2) Wybierz opcję menu „Ustaw jako projekt startowy”. Zapewni to uruchomienie tego projektu, gdy program Visual Studio uruchomi całe rozwiązanie
Krok 3) Następnym krokiem jest uruchomienie samego projektu. Teraz, w zależności od domyślnej przeglądarki zainstalowanej w systemie, odpowiednia nazwa przeglądarki pojawi się obok przycisku Uruchom w programie Visual Studio. W naszym przypadku pojawia się Google Chrome. Po prostu kliknij ten przycisk.
Wynik:-
Po uruchomieniu projektu możesz przejść do sekcji TutorialService.svc / Tutorial, a otrzymasz poniższe dane wyjściowe.
W powyższym wyjściu
- Widać, że przeglądarka wywołuje czasownik „GET” i wykonuje metodę „GetAllTutorial” w usłudze sieciowej. Ten moduł służy do wyświetlania wszystkich samouczków udostępnianych przez naszą usługę internetową.
Testowanie Twojej pierwszej usługi internetowej Restful
W powyższej sekcji widzieliśmy już, jak używać przeglądarki do wykonywania czasownika „GET” i wywoływania samouczka „GetAllTutorial”.
- Użyjmy teraz przeglądarki, aby wykonać następujący scenariusz użycia.
POBIERZ Tutorial / Tutorialid - gdy klient wywoła ten Restful API, otrzyma nazwę samouczka na podstawie Tutorialid wysłanego przez klienta
W przeglądarce dołącz ciąg / 1 po słowie Samouczka w adresie URL. Jeśli naciśniesz przycisk Enter, otrzymasz poniższe dane wyjściowe
Teraz zobaczysz wyjście Queues, które w rzeczywistości odpowiada numerowi 1 na naszej liście Ciągów Samouczka. Oznacza to, że metoda „GetTutorialbyID” jest teraz wywoływana z naszej usługi sieciowej. Pokazuje również, że wartość 1 jest pomyślnie przekazywana przez przeglądarkę do naszego serwisu internetowego i do naszej metody i dlatego otrzymujemy w przeglądarce poprawną odpowiednią wartość „Kolejki”.
- Następnie wykorzystajmy naszą usługę internetową, wykonując poniższy scenariusz. W tym celu należy zainstalować narzędzie o nazwie „Fiddler”, które jest bezpłatnym narzędziem do pobrania z witryny.
POST Tutorial / Tutorialname - gdy klient wywoła ten Restful API, klient prześle żądanie wstawienia Tutorialname. Usługa internetowa doda następnie przesłaną nazwę samouczka do kolekcji.
Uruchom narzędzie Filddler i wykonaj poniższe czynności;
- Przejdź do sekcji kompozytorów. Służy do tworzenia żądań, które można przesyłać do dowolnej sieci
podanie.
- Upewnij się, że typ żądania to „POST” i trafiany jest prawidłowy adres URL, który w naszym przypadku powinien być http: // localhost: 52645 / TutorialService.svc / Tutorial
- Upewnij się, że Content-Type jest oznaczony jako application / json. Pamiętaj, że nasza metoda żądania POST w naszym serwisie internetowym akceptuje tylko dane w stylu json, więc musimy upewnić się, że jest to określone, gdy wysyłamy żądanie do naszej aplikacji.
- Wreszcie musimy wprowadzić nasze dane. Pamiętaj, że nasza metoda POST akceptuje parametr o nazwie „str”. Więc tutaj określamy, że chcemy dodać wartość o nazwie "Drzewa" do naszej kolekcji nazw samouczków i upewnić się, że jest ona oznaczona jako nazwa zmiennej str.
Na koniec kliknij przycisk Wykonaj w skrzypcach. Spowoduje to wysłanie żądania do usługi sieciowej, aby POST „Drzewa” danych do naszego serwisu internetowego.
Teraz, gdy przejdziemy do adresu URL samouczka, aby wyświetlić wszystkie ciągi znaków z naszej listy samouczków, zobaczysz teraz, że obecna jest również wartość „Drzewa”. To pokazuje, że żądanie POST do usługi internetowej zostało pomyślnie wykonane i zostało pomyślnie dodane do naszej listy samouczków.
- Następnie wykorzystajmy naszą usługę internetową, wykonując poniższy scenariusz. W tym celu musimy również użyć narzędzia Fiddler
USUŃ Tutorial / Tutorialid - gdy klient wywoła ten Restful API, klient prześle żądanie usunięcia Tutorialname na podstawie Tutorialid. Usługa internetowa usunie następnie przesłaną nazwę samouczka z kolekcji.
Uruchom narzędzie Filddler i wykonaj poniższe czynności
- Przejdź do sekcji kompozytorów. Służy do tworzenia żądań, które można przesyłać do dowolnej sieci
podanie.
- Upewnij się, że typ żądania to „DELETE” i trafiony został prawidłowy adres URL, który w naszym przypadku powinien być http: // localhost: 52645 / TutorialService.svc / Tutorial . Upewnij się, że identyfikator, który jest używany do usuwania ciągu z listy przesłanej za pośrednictwem adresu URL jako parametr. W naszym przykładzie REST wysyłamy 1, więc spowoduje to usunięcie drugiego elementu z naszej kolekcji, którym jest „Kolejki”.
Na koniec kliknij przycisk Wykonaj w skrzypcach. Spowoduje to wysłanie do usługi sieciowej żądania USUNIĘCIA „kolejek” danych do naszej usługi internetowej.
Teraz, gdy przejdziemy do adresu URL samouczka, aby wyświetlić wszystkie ciągi z naszej listy samouczków, zauważysz, że wartość „Queues” nie jest już obecna.
To pokazuje, że żądanie DELETE do usługi internetowej zostało pomyślnie wykonane. Element o indeksie nr 1 na naszej liście ciągów znaków samouczka został pomyślnie usunięty.
Podsumowanie
- REST oznacza REpresentational State Transfer. REST służy do tworzenia usług internetowych, które są lekkie, łatwe w utrzymaniu i skalowalne.
- Coraz więcej aplikacji przechodzi na architekturę Restful. Dzieje się tak, ponieważ wiele osób korzysta obecnie z urządzeń mobilnych i szerszej gamy aplikacji przenoszących się do chmury.
- Głównymi aspektami REST są zasoby, które znajdują się na serwerze oraz czasowniki GET, POST, PUT i DELETE, które mogą być używane do pracy z tymi zasobami.
- Visual Studio i .Net mogą służyć do tworzenia usług internetowych Restful.
- Podczas testowania usług internetowych dla POST i PUT, musisz użyć innego narzędzia zwanego fiddler, którego można użyć do wysłania żądania POST i PUT do serwera.