Samouczek dotyczący usług sieciowych RESTful: Co to jest interfejs API REST z przykładem
Co to są spokojne usługi internetowe?
Spokojne usługi internetowe jest lekką, łatwą w utrzymaniu i skalowalną usługą, która jest zbudowana na architekturze REST. Usługa sieciowa RESTful, udostępnia API z aplikacji w bezpieczny, jednolity, bezstanowy sposób dla klienta wywołującego. Klient wywołujący może wykonywać wstępnie zdefiniowane operacje za pomocą usługi RESTful. Podstawowym protokołem dla REST jest HTTP. REST oznacza REpresentational State Transfer.
Kluczowe elementy RESTful
Usługi internetowe REST przeszły naprawdę długą drogę od chwili ich powstania. W 2002 roku konsorcjum internetowe opublikowało definicję usług sieciowych WSDL i SOAP. Stworzyło to standard wdrażania usług sieciowych.
W 2004 roku konsorcjum internetowe opublikowało także definicję dodatkowego standardu o nazwie RESTful. W ciągu ostatnich kilku lat standard ten stał się dość popularny. I jest używany przez wiele popularnych stron internetowych na całym świecie, w tym Facebook i Twitter.
REST to sposób na dostęp do zasobów znajdujących się w określonym środowisku. Możesz na przykład mieć serwer, na którym będą przechowywane 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 dostępu 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 posiada rekordy kilku pracowników. Załóżmy, że adres URL aplikacji internetowej to https://demo.guru99.com. Teraz, aby uzyskać dostęp do zasobu akt pracowniczych za pośrednictwem usług REST, można wydać polecenie https://demo.guru99.com/employee/1 – To polecenie nakazuje serwerowi WWW podanie danych pracownika, którego numer pracownika wynosi 1.
- Czasowniki żądające – Opisują, co chcesz zrobić z zasobem. Przeglądarka wydaje czasownik GET, aby poinformować punkt końcowy, że chce pobrać dane. Dostępnych jest jednak wiele innych czasowników, w tym takie jak POST, PUT i DELETE. Tak w przypadku przykładu https://demo.guru99.com/employee/1 przeglądarka internetowa w rzeczywistości wydaje polecenie GET, ponieważ chce uzyskać szczegóły dotyczące rekordu pracownika.
- Żądaj nagłówków – Są to dodatkowe instrukcje wysyłane z żądaniem. Mogą one określać typ wymaganej odpowiedzi lub szczegóły autoryzacji.
- Treść zapytania – Dane są wysyłane wraz z żądaniem. Dane są zazwyczaj wysyłane w żądaniu, gdy żądanie POST jest wysyłane do usług sieciowych REST. W wywołaniu POST klient faktycznie informuje usługi sieciowe REST, że chce dodać zasób do serwera. W związku z tym treść żądania będzie zawierać szczegóły zasobu, który musi zostać dodany do serwera.
- Treść odpowiedzi – To jest główna treść odpowiedzi. Tak więc w naszym przykładzie RESTful API, jeśli mielibyśmy wysłać zapytanie do serwera WWW za pomocą żądania https://demo.guru99.com/employee/1 serwer WWW może zwrócić dokument XML zawierający wszystkie dane pracownika w treści odpowiedzi.
- Kody stanu odpowiedzi – Są to kody ogólne, które są zwracane wraz z odpowiedzią z serwera WWW. Przykładem jest kod 200, który jest zwykle zwracany, jeśli podczas zwracania odpowiedzi do klienta nie wystąpił błąd.
Metody relaksu
Poniższy diagram pokazuje głównie wszystkie czasowniki (POST, GET, PUT i DELETE) oraz przykładowy interfejs API REST, pokazujący ich znaczenie.
Załóżmy, że w danej lokalizacji zdefiniowano usługę sieciową RESTful. https://demo.guru99.com/employee . Gdy klient wysyła jakiekolwiek żądanie do tej usługi internetowej, może ona określić dowolne zwykłe czasowniki HTTP: GET, POST, DELETE i PUT. Poniżej przedstawiono, co by się stało, gdyby klient wysłał odpowiednie czasowniki.
- POST – Służyłoby to do utworzenia nowego pracownika korzystającego z usługi sieciowej RESTful
- GET – Służy do uzyskania listy wszystkich pracowników korzystających z usługi internetowej RESTful
- PUT – Służyłoby to do aktualizacji wszystkich pracowników korzystających z usługi internetowej RESTful
- DELETE – Służyłoby to do usunięcia wszystkich pracowników korzystających z usług RESTful
Spójrzmy na sprawę z perspektywy pojedynczego rekordu. Załóżmy, że istniał rekord pracownika o numerze pracownika 1.
Poniższe działania będą miały swoje odpowiednie znaczenie.
- POST – To nie miałoby zastosowania, ponieważ pobieramy dane pracownika 1, który jest już utworzony.
- GET – Służy do pobierania danych pracownika o numerze 1 za pomocą usługi internetowej RESTful
- PUT – Służy do aktualizowania danych pracownika, którego numer to 1, przy użyciu usługi internetowej RESTful
- DELETE – Służy do usuwania danych pracownika, którego numer pracownika wynosi 1
Dlaczego spokojny
Restful zyskał popularność głównie z następujących powodów:
1. Języki i środowiska heterogeniczne – Jest to jeden z podstawowych powodów, taki sam, jak widzieliśmy SOAP , jak również.
- Umożliwia komunikację między aplikacjami internetowymi zbudowanymi w różnych językach programowania
- Dzięki usługom Restful te aplikacje internetowe mogą znajdować się w różnych środowiskach, niektóre mogą być włączone Windows, a inne mogą działać na Linuksie.
Ale ostatecznie, niezależnie od otoczenia, efekt końcowy powinien zawsze być taki sam, czyli możliwość rozmowy ze sobą. Relaksujące usługi internetowe oferują tę elastyczność aplikacjom zbudowanym na różnych językach programowania i platformach, aby mogły ze sobą rozmawiać.
Poniższy obrazek przedstawia przykład aplikacji internetowej, która wymaga komunikacji z innymi aplikacjami, takimi jak Facebook, Twitter i Google.
Teraz, gdyby aplikacja kliencka miała współpracować z serwisami takimi jak Facebook, Twitter itp., prawdopodobnie musiałaby wiedzieć, w jakim języku zbudowane są 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 się to okazać koszmarem.
Facebook, Twitter i Google udostępniają swoją funkcjonalność w postaci usług sieciowych Restful. Dzięki temu każda aplikacja kliencka może wywoływać te usługi internetowe za pośrednictwem protokołu REST.
2. Zdarzenie Urządzenia – Obecnie nad wszystkim trzeba pracować Mobile urządzeń, niezależnie od tego, czy jest to urządzenie mobilne, notebooki, czy nawet systemy samochodowe.
Czy możesz sobie wyobrazić, ile wysiłku wymaga próba kodowania aplikacji na tych urządzeniach, aby komunikowały się ze zwykłymi aplikacjami internetowymi? Ponownie, interfejsy API Restful mogą uprościć to zadanie, ponieważ, jak wspomniano w punkcie 1, naprawdę nie musisz wiedzieć, jaka jest podstawowa warstwa urządzenia.
3. Wreszcie następuje wydarzenie w Chmurze – Wszystko przenosi się do chmury. Aplikacje powoli przenoszą się do systemów opartych na chmurze, takich jak m.in Azure or Amazon. Azure oraz Amazon zapewniają wiele API opartych na architekturze Restful. Dlatego aplikacje muszą być teraz rozwijane w taki sposób, aby były kompatybilne z chmurą. Ponieważ wszystkie architektury oparte na chmurze działają na zasadzie REST, ma większy sens, aby usługi sieciowe były programowane na architekturze opartej na usługach REST, aby jak najlepiej wykorzystać usługi oparte na chmurze.
Spokojny Architektura
Aplikacja lub architektura uważana za zgodną z REST lub w stylu REST ma następujące cechy
1. Stan i funkcjonalność są podzielone na zasoby rozproszone – Oznacza to, że każdy zasób powinien być dostępny za pomocą zwykłych poleceń HTTP: GET, POST, PUT lub DELETE. Jeśli więc ktoś chce 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ść wydania żądania POST lub PUT. I na koniec, jeśli chcą usunąć plik z serwera, mogą wysłać żądanie DELETE.
2. Architektura jest typu klient/serwer, bezstanowa, warstwowa i obsługuje buforowanie
- Klient-serwer to typowa architektura, w której serwerem może być serwer WWW hostujący aplikację, a klientem może być po prostu 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 mieć pewność, że zasób zostanie usunięty, musisz wysłać żądanie GET. Żądanie GET zostanie użyte do pobrania wszystkich zasobów z serwera. Następnie należy sprawdzić, czy zasób został rzeczywiście usunięty.
RESTFulowe zasady i ograniczenia
Architektura REST opiera się na kilku cechach, które są omówione poniżej. Każda usługa sieciowa RESTful musi być zgodna z poniższymi cechami, aby mogła być nazywana RESTful. Cechy te są również znane jako zasady projektowania, które muszą być przestrzegane podczas pracy z usługami opartymi na RESTful.
To jest najbardziej podstawowy wymóg architektury opartej na REST. Oznacza to, że serwer będzie miał usługę internetową RESTful, która zapewni klientowi wymaganą funkcjonalność. Klient wysyła żądanie do usługi internetowej na serwerze. Serwer albo odrzuci żądanie, albo je spełni i udzieli klientowi odpowiedniej odpowiedzi.
- Bezpaństwowiec
Koncepcja bezstanowości oznacza, że zadaniem klienta jest zapewnienie, że wszystkie wymagane informacje zostaną dostarczone do serwera. Jest to wymagane, aby serwer mógł odpowiednio przetworzyć odpowiedź. Serwer nie powinien przechowywać żadnych informacji pomiędzy żądaniami klienta. To bardzo prosta, niezależna sekwencja pytań i odpowiedzi. Klient zadaje pytanie, serwer odpowiednio na nie odpowiada. Klient zada kolejne pytanie. Serwer nie będzie pamiętał poprzedniego scenariusza pytanie-odpowiedź i będzie musiał samodzielnie odpowiedzieć na nowe pytanie.
- Cache
Koncepcja Cache ma pomóc w rozwiązaniu problemu bezstanowców, który został opisany w ostatnim punkcie. Ponieważ każde żądanie klienta serwera ma charakter niezależny, czasami klient może ponownie poprosić serwer o to samo żądanie. Dzieje się tak pomimo tego, ż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. Jeśli więc to samo żądanie zostanie wysłane przez klienta, zamiast udać się do serwera, trafi do pamięci podręcznej i pobierze wymagane informacje. Oszczędza to ilość ruchu sieciowego tam i z powrotem od klienta do serwera.
- System warstwowy
Koncepcja systemu warstwowego polega na tym, że pomiędzy klientem a rzeczywistym serwerem obsługującym usługę internetową RESTFul można wstawić dowolną dodatkową warstwę, taką jak warstwa oprogramowania pośredniego. (Warstwa oprogramowania pośredniego to miejsce, w którym tworzona jest cała logika biznesowa. Może to być usługa dodatkowa utworzony, z którym klient może wchodzić w interakcję przed wykonaniem połączenia z usługą internetową.). Jednak wprowadzenie tej warstwy musi być przejrzyste, aby nie zakłócało interakcji pomiędzy klientem a serwerem.
- Interfejs/jednolita umowa
Jest to podstawowa technika działania usług sieciowych RESTful. RESTful zasadniczo działa w warstwie internetowej HTTP i używa poniższych czasowników kluczowych do pracy z zasobami na serwerze
- POST – Aby utworzyć zasób na serwerze
- GET – Aby pobrać zasób z serwera
- PUT – Aby zmienić stan zasobu lub go zaktualizować
- DELETE – Aby usunąć lub usunąć zasób z serwera
Utwórz swoją pierwszą usługę sieciową typu Restful w ASP.NET
W tym samouczku API REST dowiemy się, jak utworzyć usługę sieciową typu Restful w ASP.NET:
Usługi internetowe można tworzyć w różnych językach. Do tworzenia usług opartych na REST można wykorzystać wiele 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 sieciowych RESTful będziemy 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 API REST firmy, która udostępnia samouczki, które posiada w oparciu o Tutorialid.
Samouczek | Nazwa samouczka |
---|---|
0 | Tablice |
1 | Kolejki |
2 | Półki na książki |
W naszym przykładzie samouczka API REST zaimplementujemy poniższe czasowniki relaksujące.
- POBIERZ samouczek – Kiedy klient wywoła ten Restful API, otrzyma cały zestaw samouczków dostępnych w serwisie internetowym.
- POBIERZ samouczek/samouczek – Kiedy klient wywoła ten Restful API, otrzyma nazwę Tutorial na podstawie Tutorialid wysłanego przez klienta.
- Samouczek POST/nazwa samouczka – Kiedy klient wywoła ten Restful API, klient prześle żądanie wstawienia nazwy samouczka. Usługa internetowa następnie doda przesłaną nazwę samouczka do kolekcji.
- USUŃ Poradnik/Samouczek– Kiedy klient wywoła ten Restful API, klient prześle żądanie usunięcia nazwy samouczka na podstawie identyfikatora Tutorialid. Usługa internetowa usunie następnie przesłaną nazwę samouczka z kolekcji.
Wykonajmy poniższe kroki w tym samouczku API RESTful, aby utworzyć nasze pierwsze usługi internetowe RESTful, które realizują powyższą implementację.
Jak stworzyć pierwszą spokojną usługę internetową
Krok 1) Utwórz nowy projekt.
Pierwszym krokiem jest utworzenie pustego pliku Asp.Net Aplikacja internetowa. W programie Visual Studio 2013 kliknij opcję menu File->New project.
Po kliknięciu opcji Nowy projekt, Visual Studio wyświetli kolejne okno dialogowe do wyboru typu projektu i podania niezbędnych szczegółów projektu. Jest to wyjaśnione w następnym kroku tego samouczka RESTful API
Krok 2) Wprowadź nazwę projektu i lokalizację.
- Pamiętaj, aby najpierw wybrać usługi sieciowe RESTful C# szablon internetowy aplikacji ASP.NET Web. Projekt musi być tego typu, aby utworzyć projekt usług internetowych. Wybierając tę opcję, Visual Studio wykona niezbędne kroki, aby dodać wymagane pliki, które są wymagane przez dowolną aplikację internetową.
- Nadaj swojemu projektowi nazwę, która w naszym przypadku została podana jako „Webservice.REST”.
- Następnie pamiętaj o podaniu lokalizacji, 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) Utwórz plik usługi internetowej.
Następnym krokiem jest utworzenie pliku usługi internetowej, który będzie zawierał usługę sieciową RESTful
- Najpierw kliknij prawym przyciskiem myszy plik projektu, jak pokazano poniżej
- W 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ługa WCF (z obsługą Ajax) – Wybierz plik tego typu, powoduje to Visual studio dodać podstawowy kod, który pomoże stworzyć usługę sieciową RESTful. WCF oznacza Windows Komunikacja Foundation. WCF to biblioteka dla aplikacji różnych platform lub tej samej platformy do komunikacji przez różne protokoły, takie jak TCP, HTTP, HTTPS. Ajax jest zasadniczo asynchroniczny JAVASCRIPT i XML. AJAX umożliwia asynchroniczną aktualizację stron internetowych poprzez wymianę niewielkich ilości danych z serwerem w tle.
- Następnie nadaj nazwę usłudze, w naszym przypadku TutorialService.
- Na koniec kliknij przycisk Dodaj, aby dodać usługę do rozwiązania.
Krok 4) Dokonaj konfiguracji.
Następnym krokiem jest faktyczne dokonanie zmiany konfiguracji, aby umożliwić temu projektowi dokończenie pracy z usługami sieciowymi RESTful. Wymaga to wprowadzenia zmian w pliku o nazwie Konfiguracja internetowa. Plik ten pojawia się w tym samym oknie, co plik projektu usługi WWW. Plik Web.config zawiera wszystkie konfiguracje, które sprawiają, że aplikacja internetowa działa tak, jak powinna. Wprowadzana zmiana faktycznie umożliwia aplikacji wysyłanie i odbieranie danych w ramach czystej usługi internetowej RESTful.
- Kliknij plik Web.config, aby otworzyć kod
- Znajdź linię
- Zmień linię na
Krok 5) Dodaj nasz kod do wdrożenia.
Następnym krokiem w tym samouczku RESTful API jest dodanie naszego kodu do implementacji. Cały poniższy kod należy zapisać w pliku TutorialService.svc
- Pierwszym krokiem jest dodanie kodu reprezentującego nasze dane, które zostaną wykorzystane w naszym programie. Będziemy więc mieli listę zmiennych łańcuchowych z wartościami „Tablice”, „Kolejki” i „Stosy”. Będzie to reprezentować nazwę samouczków dostępną za pośrednictwem naszej usługi hostingowej.
namespace Webservice.REST { [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed public class TutorialService { private static List<String> lst = new List<String> (new String[] {"Arrays","Queues","Stacks"});
Krok 6) Zdefiniuj kod naszej metody GET.
Następnie zdefiniujemy kod naszej metody GET. Ten kod będzie również znajdować się w tym samym pliku TutorialService.svc. Kod ten zostanie uruchomiony za każdym razem, gdy wywołamy usługę z naszej przeglądarki.
Poniższa metoda zostanie zastosowana do spełnienia poniższego scenariusza
- Jeśli użytkownik chce uzyskać listę wszystkich dostępnych samouczków, w tym celu należy napisać poniższy kod.
[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; }
Wyjaśnienie kodu: -
- Najważniejsza jest pierwsza linijka kodu. Służy do zdefiniowania sposobu wywoływania tej metody poprzez adres URL. Jeśli więc łącze do naszego serwisu internetowego to http://localhost:52645/TutorialService.svc i jeśli dołączymy „/Tutorial” do adresu URL jako http://localhost:52645/TutorialService.svc/Tutorial , zostanie wywołany powyższy kod. 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 znaków w zmiennej „lst” i zwracania ich wszystkich do programu wywołującego.
Krok 7) Zwróć dane wyjściowe.
Poniższy kod zapewnia, że jeśli zostanie wykonane wywołanie GET 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]; }
Wyjaśnienie kodu: -
- Najważniejsza jest pierwsza linijka kodu. Służy do zdefiniowania sposobu wywoływania tej metody poprzez adres URL. Jeśli więc łącze do naszego serwisu internetowego 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 wtedy zwrócić nazwę samouczka, która miała identyfikator samouczka nr 1.
- Ta sekcja kodu służy do zwracania „Nazwy samouczka”, którego identyfikator jest przekazywany do metody internetowej.
- Domyślnie należy pamiętać, że wszystko, co jest przekazywane do adresu URL w przeglądarce, jest ciągiem znaków.
- Ale musisz pamiętać, że Indeks naszej listy 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 zwróć odpowiednio wartość do programu wywołującego.
Krok 8) Napisz kod metody POST.
Następnym krokiem jest napisanie kodu 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.
Wyjaśnienie kodu: -
- Pierwsza linia to atrybut „WebInvoke”, który został dołączony do naszej metody. Umożliwia to wywołanie metody poprzez wywołanie POST. Atrybuty RequestFormat i ResponseFormat muszą być wymienione w formacie JSON, ponieważ podczas wysyłania wartości do usługi internetowej RESTFul wartości muszą być w tym formacie.
- Druga linia kodu służy do dodania wartości ciągu przekazanej poprzez wywołanie POST do naszej istniejącej listy ciągów znaków Tutorial.
Krok 9) Dodaj metodę obsługującą operację DELETE.
Na koniec dodamy naszą metodę do obsługi operacji DELETE. Ta metoda będzie wywoływana za każdym razem, gdy będziemy chcieli usunąć istniejącą wartość ciągu z naszej listy Tutorials za pomocą metody DELETE.
[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json, UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)] public void DeleteTutorial(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); 1st.RemoveAt(pid); }
Wyjaśnienie kodu: -
- Pierwsza linia to atrybut „WebInvoke”, który został dołączony do naszej metody. Umożliwia to wywołanie metody poprzez wywołanie POST. Atrybuty RequestFormat i ResponseFormat muszą być wymienione w formacie JSON, ponieważ podczas wysyłania wartości do usługi internetowej RESTFul wartości muszą być w tym formacie. Należy zwrócić uwagę, że parametr Metoda ma wartość „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 za pomocą wywołania DELETE, a następnie usunięcia tego identyfikatora z naszej listy. (T Intxnumx funkcja w kodzie służy do konwersji identyfikatora samouczka ze zmiennej łańcuchowej na liczbę całkowitą).
Uruchomienie pierwszej usługi sieciowej Restful
Teraz, gdy stworzyliśmy cały nasz serwis internetowy w powyższej sekcji. Zobaczmy jak możemy uruchomić usługę Tutorial, aby można było ją wywołać z dowolnego klienta.
Aby uruchomić usługę internetową, wykonaj poniższe kroki
Krok 1) Kliknij prawym przyciskiem myszy plik projektu – Webservice.REST
Krok 2) Wybierz opcję menu „Ustaw jako projekt startowy”. Dzięki temu ten projekt zostanie uruchomiony, gdy 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 Visual Studio. W naszym przypadku mamy Google Chrome wyświetlanie. 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
- Możesz zobaczyć, że przeglądarka wywołuje czasownik „GET” i wykonuje metodę „GetAllTutorial” w usłudze internetowej. Moduł ten służy do wyświetlania wszystkich Poradników udostępnianych przez nasz serwis internetowy.
Testowanie Twojej pierwszej usługi internetowej Restful
W powyższej sekcji widzieliśmy już, jak używać przeglądarki do wykonania czasownika „GET” i wywołania metody „GetAllTutorial”.
- Użyjmy teraz przeglądarki, aby wykonać następujący scenariusz przypadku użycia.
GET Tutorial/Tutorialid – gdy klient wywoła to Restful API, otrzyma nazwę Tutorial na podstawie Tutorialid wysłanego przez klienta
W przeglądarce dodaj ciąg /1 po słowie Samouczek w adresie URL. Jeśli naciśniesz przycisk Enter, otrzymasz poniższe dane wyjściowe
Teraz zobaczysz wynik Queues, który faktycznie odpowiada numerowi 1 na naszej liście ciągów samouczka. Oznacza to, że metoda „GetTutorialbyID” jest teraz wywoływana z naszego serwisu internetowego. Pokazuje również, że wartość 1 jest pomyślnie przekazywana przez przeglądarkę do naszej usługi internetowej i do naszej metody i dlatego otrzymujemy poprawną odpowiadającą wartość „Kolejek” w przeglądarce.
- Następnie skorzystajmy z naszej usługi internetowej, 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 nazwy Tutorialname. Usługa internetowa następnie doda przesłaną nazwę samouczka do kolekcji.
Uruchom narzędzie Filddler i wykonaj poniższe kroki;
- Przejdź do sekcji kompozytora. Służy ona do tworzenia żądań, które można przesłać do dowolnej aplikacji internetowej.
- Upewnij się, że typem żądania jest „POST” i trafienie na poprawny adres URL, co w naszym przypadku powinno być http://localhost:52645/TutorialService.svc/Tutorial
- Upewnij się, że typ zawartości jest oznaczony jako aplikacja/json. Pamiętaj, że nasza metoda żądania POST w naszej usłudze internetowej akceptuje tylko dane w formacie JSON, dlatego musimy się upewnić, że jest to określone, gdy wysyłamy żądanie do naszej aplikacji.
- Na koniec musimy wprowadzić nasze dane. Pamiętaj, że nasza metoda POST akceptuje parametr o nazwie „str.”. Zatem tutaj określamy, że chcemy dodać wartość o nazwie „Drzewa” do naszej kolekcji nazw samouczków i upewnić się, że jest ona oznaczona nazwą zmiennej str.
Na koniec wystarczy kliknąć przycisk Wykonaj w fiddler. Spowoduje to wysłanie żądania do usługi sieciowej w celu przesłania danych „Drzewa” do naszej usługi sieciowej.
Teraz, gdy przejdziemy do adresu URL samouczka, aby wyświetlić wszystkie ciągi znaków na naszej liście samouczków, zobaczysz również wartość „Drzewa”. To pokazuje, że żądanie POST skierowane do usługi internetowej zostało pomyślnie wykonane i zostało pomyślnie dodane do naszej listy samouczków.
- Następnie skonsumujmy naszą usługę sieciową, 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 nazwy samouczka na podstawie Tutorialid. Usługa internetowa usunie następnie przesłaną nazwę samouczka z kolekcji.
Uruchom narzędzie Filddler i wykonaj poniższe kroki
- Przejdź do sekcji kompozytora. Służy ona do tworzenia żądań, które można przesłać do dowolnej aplikacji internetowej.
- Upewnij się, że typem żądania jest „USUŃ” i że trafiany jest poprawny adres URL, co w naszym przypadku powinno być http://localhost:52645/TutorialService.svc/Tutorial. Upewnij się, że identyfikator używany do usuwania ciągu znaków z listy przesyłanej za pośrednictwem adresu URL jako parametr. W naszym przykładzie REST wysyłamy 1, więc spowoduje to usunięcie 2nd elementem naszej kolekcji, którym są „Kolejki”.
Na koniec wystarczy kliknąć przycisk Wykonaj w programie Fiddler. Spowoduje to wysłanie żądania do usługi sieciowej w celu USUNIĘCIA danych „Queues” do naszej usługi sieciowej.
Teraz, gdy przejdziemy do adresu URL samouczka, aby wyświetlić wszystkie ciągi znaków na naszej liście samouczków, zauważysz, że wartość „Kolejki” nie jest już obecna.
Pokazuje to, że żądanie DELETE do usługi sieciowej zostało pomyślnie wykonane. Element o indeksie 1 na naszej liście ciągów Tutorial został pomyślnie usunięty.
Podsumowanie
- REST oznacza reprezentacyjny transfer stanu. 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 teraz z urządzeń mobilnych, a szersza gama aplikacji przechodzi do chmury.
- Głównymi aspektami REST są zasoby znajdujące się na serwerze oraz czasowniki GET, POST, PUT i DELETE, których można używać do pracy z tymi zasobami.
- Do tworzenia usług sieciowych RESTful można używać środowisk Visual Studio i .Net.
- Kiedy Testy Aby skorzystać z usług sieciowych POST i PUT, należy skorzystać z innego narzędzia o nazwie Fiddler, za pomocą którego można wysyłać żądania POST i PUT do serwera.