RESTful Web Services Tutorial: Was ist REST API mit Beispiel
Was sind Restful Web Services?
Erholsame Webdienste ist ein leichter, wartungsfreundlicher und skalierbarer Dienst, der auf der REST-Architektur basiert. Restful Web Service stellt dem aufrufenden Client die API Ihrer Anwendung auf sichere, einheitliche und zustandslose Weise zur Verfügung. Der aufrufende Client kann mithilfe des Restful-Dienstes vordefinierte Vorgänge ausführen. Das zugrunde liegende Protokoll für REST ist HTTP. REST steht für REpresentational State Transfer.
RESTful-Schlüsselelemente
REST-Webdienste haben seit ihrer Einführung wirklich einen langen Weg zurückgelegt. Im Jahr 2002 hatte das Web-Konsortium die Definition von WSDL- und SOAP-Webdiensten veröffentlicht. Dies bildete den Standard für die Implementierung von Webdiensten.
Im Jahr 2004 veröffentlichte das Webkonsortium außerdem die Definition eines zusätzlichen Standards namens RESTful. In den letzten Jahren erfreut sich dieser Standard großer Beliebtheit. Und wird von vielen der beliebten Websites auf der ganzen Welt verwendet, darunter Facebook und Twitter.
REST ist eine Möglichkeit, auf Ressourcen zuzugreifen, die in einer bestimmten Umgebung liegen. Sie könnten beispielsweise über einen Server verfügen, auf dem wichtige Dokumente, Bilder oder Videos gehostet werden könnten. All dies sind Beispiele für Ressourcen. Wenn ein Client, beispielsweise ein Webbrowser, eine dieser Ressourcen benötigt, muss er eine Anfrage an den Server senden, um auf diese Ressourcen zuzugreifen. Jetzt definieren REST-Dienste eine Möglichkeit, wie auf diese Ressourcen zugegriffen werden kann.
Die Schlüsselelemente einer RESTful-Implementierung sind wie folgt:
- Ressourcen – Das erste Schlüsselelement ist die Ressource selbst. Nehmen wir an, dass eine Webanwendung auf einem Server Datensätze mehrerer Mitarbeiter enthält. Nehmen wir an, die URL der Webanwendung lautet https://demo.guru99.com. Um nun über REST-Dienste auf eine Mitarbeiterdatensatzressource zuzugreifen, kann man den Befehl erteilen https://demo.guru99.com/employee/1 – Dieser Befehl fordert den Webserver auf, die Daten des Mitarbeiters mit der Mitarbeiternummer 1 anzugeben.
- Fordern Sie Verben an – Diese beschreiben, was Sie mit der Ressource machen möchten. Ein Browser gibt ein GET-Verb aus, um den Endpunkt anzuweisen, Daten abzurufen. Es stehen jedoch noch viele andere Verben zur Verfügung, darunter Dinge wie POST, PUT und DELETE. So im Fall des Beispiels https://demo.guru99.com/employee/1 , der Webbrowser gibt tatsächlich ein GET-Verb aus, weil er die Details des Mitarbeiterdatensatzes abrufen möchte.
- Header anfordern – Dies sind zusätzliche Anweisungen, die mit der Anfrage gesendet werden. Diese können die Art der erforderlichen Antwort oder die Autorisierungsdetails definieren.
- Körper anfordern – Daten werden mit der Anfrage gesendet. Daten werden normalerweise in der Anfrage gesendet, wenn eine POST-Anfrage an die REST-Webdienste gestellt wird. Bei einem POST-Aufruf teilt der Client den REST-Webdiensten tatsächlich mit, dass er dem Server eine Ressource hinzufügen möchte. Der Anfragetext enthält daher die Details der Ressource, die dem Server hinzugefügt werden muss.
- Antwortgremium – Dies ist der Hauptteil der Antwort. Also in unserem RESTful-API-Beispiel, wenn wir den Webserver über die Anfrage abfragen würden https://demo.guru99.com/employee/1 , der Webserver gibt möglicherweise ein XML-Dokument mit allen Details des Mitarbeiters im Antworttext zurück.
- Antwortstatuscodes – Bei diesen Codes handelt es sich um allgemeine Codes, die zusammen mit der Antwort vom Webserver zurückgegeben werden. Ein Beispiel ist der Code 200, der normalerweise zurückgegeben wird, wenn beim Zurücksenden einer Antwort an den Client kein Fehler auftritt.
Erholsame Methoden
Das folgende Diagramm zeigt größtenteils alle Verben (POST, GET, PUT und DELETE) und ein REST-API-Beispiel für ihre Bedeutung.
Nehmen wir an, dass am Standort ein RESTful-Webdienst definiert ist. https://demo.guru99.com/employee . Wenn der Client eine Anfrage an diesen Webdienst stellt, kann er eines der normalen HTTP-Verben GET, POST, DELETE und PUT angeben. Nachfolgend sehen Sie, was passieren würde, wenn die entsprechenden Verben vom Client gesendet würden.
- jetzt lesen – Dies würde verwendet werden, um mithilfe des RESTful-Webdienstes einen neuen Mitarbeiter zu erstellen
- STARTE – Dies würde verwendet werden, um eine Liste aller Mitarbeiter zu erhalten, die den RESTful-Webdienst nutzen
- SETZEN – Dies würde verwendet werden, um alle Mitarbeiter zu aktualisieren, die den RESTful-Webdienst nutzen
- LÖSCHEN – Dies würde verwendet werden, um alle Mitarbeiter zu löschen, die die RESTful-Dienste nutzen
Werfen wir einen Blick aus der Perspektive eines einzelnen Datensatzes. Nehmen wir an, es gäbe einen Mitarbeiterdatensatz mit der Mitarbeiternummer 1.
Die folgenden Aktionen hätten ihre jeweiligen Bedeutungen.
- jetzt lesen – Dies wäre nicht anwendbar, da wir Daten von Mitarbeiter 1 abrufen, die bereits erstellt wurden.
- STARTE – Dies würde verwendet werden, um die Details des Mitarbeiters mit der Mitarbeiternummer 1 mithilfe des RESTful-Webdienstes abzurufen
- SETZEN – Dies würde verwendet werden, um die Details des Mitarbeiters mit der Mitarbeiternummer 1 mithilfe des RESTful-Webdienstes zu aktualisieren
- LÖSCHEN – Dies wird verwendet, um die Details des Mitarbeiters mit der Mitarbeiternummer 1 zu löschen.
Warum erholsam
Restful erfreute sich vor allem aus den folgenden Gründen großer Beliebtheit:
1. Heterogene Sprachen und Umgebungen – Dies ist einer der grundlegenden Gründe, der derselbe ist, den wir gesehen haben SOAP .
- Es ermöglicht Webanwendungen, die auf verschiedenen Programmiersprachen basieren, miteinander zu kommunizieren
- Mit Hilfe von Restful-Diensten können sich diese Webanwendungen in verschiedenen Umgebungen befinden, einige könnten sogar aktiv sein Windows, und andere könnten unter Linux laufen.
Aber am Ende sollte das Endergebnis immer dasselbe sein, egal wie die Umgebung ist, nämlich dass sie in der Lage sein sollten, miteinander zu reden. Restful Web Services bieten diese Flexibilität für Anwendungen, die auf verschiedenen Programmiersprachen und Plattformen basieren, um miteinander zu kommunizieren.
Das folgende Bild zeigt ein Beispiel einer Webanwendung, die mit anderen Anwendungen wie Facebook, Twitter und Google kommunizieren muss.
Wenn eine Client-Anwendung nun mit Websites wie Facebook, Twitter usw. arbeiten müsste, müsste sie wahrscheinlich wissen, auf welcher Sprache Facebook, Google und Twitter basieren und auf welcher Plattform sie basieren.
Auf dieser Grundlage können wir den Schnittstellencode für unsere Webanwendung schreiben, aber das könnte sich als Albtraum erweisen.
Facebook, Twitter und Google stellen ihre Funktionalität in Form von Restful-Webdiensten zur Verfügung. Dadurch kann jede Clientanwendung diese Webdienste über REST aufrufen.
2. Das Ereignis der Geräte – Heutzutage muss an allem gearbeitet werden Mobil Geräte, sei es das Mobilgerät, die Notebooks oder sogar Autosysteme.
Können Sie sich vorstellen, wie viel Aufwand es kostet, Anwendungen auf diesen Geräten so zu programmieren, dass sie mit normalen Webanwendungen kommunizieren? Auch hier können Restful APIs diese Aufgabe vereinfachen, denn wie in Punkt 1 erwähnt, müssen Sie nicht wirklich wissen, welche Schicht dem Gerät zugrunde liegt.
3. Endlich ist das Ereignis der Cloud – Alles verlagert sich in die Cloud. Anwendungen verlagern sich langsam auf cloudbasierte Systeme wie z Azure or Amazon. Azure und Amazon bieten viele APIs auf Basis der Restful-Architektur. Daher müssen Anwendungen jetzt so entwickelt werden, dass sie mit der Cloud kompatibel sind. Da alle Cloud-basierten Architekturen auf dem REST-Prinzip basieren, ist es sinnvoller, Webdienste auf der auf REST-Diensten basierenden Architektur zu programmieren, um Cloud-basierte Dienste optimal nutzen zu können.
Erholsam Architektur
Eine Anwendung oder Architektur, die als RESTful oder REST-Stil betrachtet wird, hat die folgenden Eigenschaften
1. Zustand und Funktionalität werden in verteilte Ressourcen unterteilt – Das bedeutet, dass jede Ressource über die normalen HTTP-Befehle GET, POST, PUT oder DELETE zugänglich sein sollte. Wenn also jemand eine Datei von einem Server abrufen möchte, sollte er in der Lage sein, die GET-Anfrage zu stellen und die Datei abzurufen. Wenn sie eine Datei auf dem Server ablegen möchten, sollten sie entweder die POST- oder PUT-Anfrage stellen können. Und schließlich können sie, wenn sie eine Datei vom Server löschen möchten, die DELETE-Anfrage stellen.
2. Die Architektur ist Client/Server, zustandslos, geschichtet und unterstützt Caching
- Client-Server ist die typische Architektur, bei der der Server der Webserver sein kann, der die Anwendung hostet, und der Client so einfach wie der Webbrowser sein kann.
- Statuslos bedeutet, dass der Status der Anwendung nicht in REST beibehalten wird. Wenn Sie beispielsweise eine Ressource mit dem DELETE-Befehl von einem Server löschen, können Sie nicht erwarten, dass die Löschinformationen an die nächste Anforderung übergeben werden.
Um sicherzustellen, dass die Ressource gelöscht wird, müssen Sie die GET-Anfrage stellen. Mit der GET-Anfrage würden zunächst alle Ressourcen auf dem Server abgerufen. Danach müsste man prüfen, ob die Ressource tatsächlich gelöscht wurde.
RESTFul-Prinzipien und Einschränkungen
Die REST-Architektur basiert auf einigen Merkmalen, die im Folgenden näher erläutert werden. Jeder RESTful-Webdienst muss die folgenden Merkmale erfüllen, um als RESTful bezeichnet werden zu können. Diese Merkmale werden auch als Designprinzipien bezeichnet, die bei der Arbeit mit RESTful-basierten Diensten beachtet werden müssen.
Dies ist die grundlegendste Anforderung einer REST-basierten Architektur. Es bedeutet, dass der Server über einen RESTful-Webdienst verfügt, der dem Client die erforderliche Funktionalität bietet. Der Client sendet eine Anfrage an den Webdienst auf dem Server. Der Server lehnt die Anfrage entweder ab oder kommt ihr nach und gibt dem Client eine entsprechende Antwort.
- Staatenlos
Das Konzept der Zustandslosigkeit bedeutet, dass es Sache des Clients ist, sicherzustellen, dass alle erforderlichen Informationen dem Server bereitgestellt werden. Dies ist erforderlich, damit der Server die Antwort ordnungsgemäß verarbeiten kann. Der Server sollte zwischen Anfragen des Clients keinerlei Informationen speichern. Es handelt sich um eine sehr einfache unabhängige Frage-Antwort-Sequenz. Der Client stellt eine Frage, der Server beantwortet sie entsprechend. Der Kunde wird eine weitere Frage stellen. Der Server wird sich nicht an das vorherige Frage-Antwort-Szenario erinnern und muss die neue Frage selbstständig beantworten.
- Cache
Das Cache-Konzept soll bei dem im letzten Punkt beschriebenen Problem der Zustandslosigkeit helfen. Da jede Server-Client-Anfrage unabhängiger Natur ist, kann es vorkommen, dass der Client den Server erneut um dieselbe Anfrage bittet. Und das, obwohl bereits in der Vergangenheit danach gefragt wurde. Diese Anfrage wird an den Server gesendet und der Server gibt eine Antwort. Dadurch erhöht sich der Datenverkehr im gesamten Netzwerk. Der Cache ist ein auf dem Client implementiertes Konzept zum Speichern von Anfragen, die bereits an den Server gesendet wurden. Wenn also der Client dieselbe Anfrage stellt, geht er nicht an den Server, sondern an den Cache und ruft die erforderlichen Informationen ab. Dadurch wird der Netzwerkverkehr zwischen Client und Server eingespart.
- Geschichtetes System
Das Konzept eines mehrschichtigen Systems besteht darin, dass zwischen dem Client und dem eigentlichen Server, der den RESTFul-Webdienst hostet, eine beliebige zusätzliche Schicht, z. B. eine Middleware-Schicht, eingefügt werden kann (in der Middleware-Schicht wird die gesamte Geschäftslogik erstellt. Dies kann ein zusätzlicher Dienst sein erstellt, mit dem der Client interagieren kann, bevor er den Webdienst aufruft. Die Einführung dieser Schicht muss jedoch transparent erfolgen, damit die Interaktion zwischen Client und Server nicht gestört wird.
- Schnittstelle/einheitlicher Vertrag
Dies ist die zugrunde liegende Technik, wie RESTful-Webdienste funktionieren sollten. RESTful arbeitet grundsätzlich auf der HTTP-Webschicht und verwendet die folgenden Schlüsselverben, um mit Ressourcen auf dem Server zu arbeiten
- POST – Zum Erstellen einer Ressource auf dem Server
- GET – Um eine Ressource vom Server abzurufen
- PUT – Um den Status einer Ressource zu ändern oder zu aktualisieren
- DELETE – Zum Entfernen oder Löschen einer Ressource vom Server
Erstellen Sie Ihren ersten Restful-Webdienst in ASP.NET
In diesem REST-API-Tutorial erfahren wir nun, wie man einen Restful-Webdienst in ASP.NET erstellt:
Webdienste können in verschiedenen Sprachen erstellt werden. Viele integrierte Entwicklungsumgebungen können zum Erstellen von REST-basierten Diensten verwendet werden.
In diesem RESTful-API-Beispiel erstellen wir unsere REST-Anwendung in .Net mit Visual Studio. In unserem Beispiel emulieren wir für Restful-Webdienste das folgende REST-Dienstbeispiel.
Wir werden einen Restful-Webdienst haben, der mit dem folgenden Datensatz funktioniert.
Der folgende Datensatz stellt ein REST-API-Beispiel für ein Unternehmen dar, das seine Tutorials basierend auf Tutorialid verfügbar macht.
Tutorialid | TutorialName |
---|---|
0 | Arrays |
1 | Queues |
2 | Stacks |
In unserem REST-API-Tutorial-Beispiel werden wir die folgenden Restful Verbs implementieren.
- Holen Sie sich das Tutorial – Wenn ein Client diese Restful-API aufruft, erhält er den gesamten Satz an Tutorials, die über den Webdienst verfügbar sind.
- GET Tutorial/Tutorialid – Wenn ein Client diese Restful-API aufruft, erhält er den Tutorial-Namen basierend auf der vom Client gesendeten Tutorial-ID.
- POST-Tutorial/Tutorialname – Wenn ein Client diese Restful-API aufruft, sendet der Client eine Anfrage zum Einfügen eines Tutorialnamens. Der Webdienst fügt dann den übermittelten Tutorial-Namen zur Sammlung hinzu.
- Tutorial/Tutorialid löschen– Wenn ein Client diese Restful-API aufruft, sendet der Client eine Anfrage zum Löschen eines Tutorialnamens basierend auf dem Tutorialid. Der Webdienst löscht dann den übermittelten Tutorial-Namen aus der Sammlung.
Befolgen Sie die folgenden Schritte in diesem RESTful-API-Tutorial, um unsere ersten RESTful-Webdienste zu erstellen, die die obige Implementierung ausführen.
So erstellen Sie Ihren ersten erholsamen Webdienst
Schritt 1) Neues Projekt erstellen.
Der erste Schritt besteht darin, ein Leerzeichen zu erstellen Asp.Net Webanwendung. Klicken Sie in Visual Studio 2013 auf die Menüoption Datei -> Neues Projekt.
Sobald Sie auf die Option Neues Projekt klicken, öffnet Visual Studio ein weiteres Dialogfeld, in dem Sie den Projekttyp auswählen und die erforderlichen Projektdetails angeben können. Dies wird im nächsten Schritt dieses RESTful API-Tutorials erklärt.
Schritt 2) Geben Sie den Projektnamen und den Standort ein.
- Stellen Sie sicher, dass Sie zuerst die RESTful-Webdienste auswählen C# Webvorlage einer ASP.NET-Webanwendung. Das Projekt muss von diesem Typ sein, um ein Webdienstprojekt zu erstellen. Wenn Sie diese Option auswählen, führt Visual Studio die erforderlichen Schritte aus, um die erforderlichen Dateien hinzuzufügen, die für jede webbasierte Anwendung erforderlich sind.
- Geben Sie Ihrem Projekt einen Namen, in unserem Fall „Webservice.REST“.
- Stellen Sie dann sicher, dass Sie einen Speicherort angeben, an dem die Projektdateien gespeichert werden.
Sobald dies erledigt ist, sehen Sie die erstellte Projektdatei in Ihrem Lösungs-Explorer in Visual Studio 2013.
Schritt 3) Erstellen Sie die Webdienstdatei.
Der nächste Schritt besteht darin, die Webdienstdatei zu erstellen, die den RESTful-Webdienst enthalten soll
- Klicken Sie zunächst mit der rechten Maustaste auf die Projektdatei, wie unten gezeigt
- In diesem Schritt
- Klicken Sie mit der rechten Maustaste auf die Projektdatei
- Wählen Sie die Option „Hinzufügen->Neues Element“.
Im angezeigten Dialogfeld müssen Sie Folgendes ausführen
- Wählen Sie die Option „WCF-Dienst (Ajax-fähig)“ – Wählen Sie eine Datei dieses Typs, es verursacht das Visual studio um einigen grundlegenden Code hinzuzufügen, der beim Erstellen eines RESTful-Webdienstes hilft. WCF steht für Windows Kommunikation Foundation. WCF ist eine Bibliothek für Anwendungen verschiedener Plattformen oder derselben Plattform, um über verschiedene Protokolle wie TCP, HTTP, HTTPS zu kommunizieren. Ajax ist grundsätzlich asynchron JavaSkript und XML. AJAX ermöglicht die asynchrone Aktualisierung von Webseiten durch den Austausch kleiner Datenmengen mit dem Server im Hintergrund.
- Geben Sie als Nächstes einen Namen für den Dienst ein, in unserem Fall TutorialService.
- Klicken Sie abschließend auf die Schaltfläche „Hinzufügen“, um den Dienst zur Lösung hinzuzufügen.
Schritt 4) Nehmen Sie eine Konfiguration vor.
Der nächste Schritt besteht darin, tatsächlich eine Konfigurationsänderung vorzunehmen, damit dieses Projekt die Arbeit mit RESTful-Webdiensten abschließen kann. Hierzu ist eine Änderung an der aufgerufenen Datei erforderlich Web.config. Diese Datei erscheint im selben Fenster wie die Webservice-Projektdatei. Die Datei Web.config enthält alle Konfigurationen, die dafür sorgen, dass die Webanwendung ordnungsgemäß funktioniert. Die vorgenommene Änderung ermöglicht es der Anwendung tatsächlich, Daten als reiner RESTful-Webdienst zu senden und zu empfangen.
- Klicken Sie auf die Datei Web.config, um den Code zu öffnen
- Suchen Sie nach der Zeile
- Ändern Sie die Zeile in
Schritt 5) Fügen Sie unseren Code zur Implementierung hinzu.
Der nächste Schritt in diesem RESTful-API-Tutorial besteht darin, unseren Code für die Implementierung hinzuzufügen. Der gesamte unten genannte Code muss in die Datei TutorialService.svc geschrieben werden
- Das erste Bit besteht darin, Code hinzuzufügen, um unsere Daten darzustellen, die in unserem Programm verwendet werden. Wir werden also eine Liste von String-Variablen mit den Werten „Arrays“, „Queues“ und „Stacks“ haben. Dies stellt den Namen der Tutorials dar, die über unseren Hosting-Webservice verfügbar sind.
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"});
Schritt 6) Definieren Sie den Code für unsere GET-Methode.
Als nächstes definieren wir den Code für unsere GET-Methode. Dieser Code befindet sich auch in derselben TutorialService.svc-Datei. Dieser Code wird immer dann ausgeführt, wenn wir den Dienst über unseren Browser aufrufen.
Die folgende Methode wird verwendet, um das unten genannte Szenario zu erfüllen
- Wenn ein Benutzer eine Liste aller verfügbaren Tutorials möchte, muss der folgende Code geschrieben werden, um dies zu erreichen.
[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; }
Code-Erklärung:-
- Die erste Codezeile ist die wichtigste. Es wird verwendet, um zu definieren, wie wir diese Methode über eine URL aufrufen können. Also, wenn der Link zu unserem Webservice ist http://localhost:52645/TutorialService.svc und wenn wir das „/Tutorial“ an die URL anhängen als http://localhost:52645/TutorialService.svc/Tutorial , wird der obige Code aufgerufen. Das Attribut von „WebGet“ ist ein Parameter, der es dieser Methode ermöglicht, eine RESTful-Methode zu sein, sodass sie über das GET-Verb aufgerufen werden kann.
- Dieser Codeabschnitt wird verwendet, um unsere Liste der Zeichenfolgen in der Variablen „lst“ durchzugehen und sie alle an das aufrufende Programm zurückzugeben.
Schritt 7) Gibt die Ausgabe zurück.
Der folgende Code stellt sicher, dass bei einem GET-Aufruf an den Tutorial-Dienst mit einer Tutorial-ID der entsprechende Tutorial-Name basierend auf der Tutorial-ID zurückgegeben wird.
[WebGet (UriTemplate = "/Tutorial/{Tutorialid}")] public String GetTutorialbyID(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); return lst[pid]; }
Code-Erklärung:-
- Die erste Codezeile ist die wichtigste. Es wird verwendet, um zu definieren, wie wir diese Methode über eine URL aufrufen können. Also, wenn der Link zu unserem Webservice ist http://localhost:52645/TutorialService.svc und wenn wir „/Tutorial/{Tutorialid}“ an die URL anhängen, könnten wir den Webdienst als aufrufen http://localhost:52645/TutorialService.svc/Tutorial/1 als Beispiel. Der Webdienst müsste dann den Namen des Tutorials mit der Tutorial-ID Nr. 1 zurückgeben.
- Dieser Codeabschnitt wird verwendet, um den „Tutorial-Namen“ zurückzugeben, der die Tutorial-ID enthält, die an die Webmethode übergeben wird.
- Standardmäßig muss beachtet werden, dass alles, was an die URL im Browser übergeben wird, eine Zeichenfolge ist.
- Sie müssen jedoch bedenken, dass der Index unserer Liste eine Ganzzahl sein muss. Daher fügen wir den erforderlichen Code hinzu, um zunächst Tutorialid in eine Ganzzahl umzuwandeln und ihn dann für den Zugriff auf die Indexposition in unserer Liste zu verwenden
- Geben Sie dann den Wert entsprechend an das aufrufende Programm zurück.
Schritt 8) Schreiben Sie den Code für die POST-Methode.
Der nächste Schritt besteht darin, den Code für unsere POST-Methode zu schreiben. Diese Methode wird immer dann aufgerufen, wenn wir über die POST-Methode einen Zeichenfolgenwert zu unserer Liste der Tutorials hinzufügen möchten. Wenn Sie beispielsweise den Tutorial-Namen „Softwaretests“ hinzufügen möchten, müssen Sie die POST-Methode verwenden.
Code-Erklärung:-
- Die erste Zeile ist das Attribut „WebInvoke“, das an unsere Methode angehängt wurde. Dadurch kann die Methode über den POST-Aufruf aufgerufen werden. Die Attribute „RequestFormat“ und „ResponseFormat“ müssen als JSON angegeben werden, da die Werte beim Posten von Werten an einen RESTFul-Webdienst in diesem Format vorliegen müssen.
- Die zweite Codezeile wird verwendet, um den über den POST-Aufruf übergebenen Zeichenfolgenwert zu unserer vorhandenen Liste von Tutorial-Zeichenfolgen hinzuzufügen.
Schritt 9) Fügen Sie eine Methode zum Verarbeiten des DELETE-Vorgangs hinzu.
Zum Schluss fügen wir unsere Methode hinzu, um den DELETE-Vorgang zu handhaben. Diese Methode wird aufgerufen, wenn wir mit der DELETE-Methode einen vorhandenen Zeichenfolgenwert aus unserer Liste der Tutorials löschen möchten.
[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); }
Code-Erklärung:-
- Die erste Zeile ist das Attribut „WebInvoke“, das an unsere Methode angehängt wurde. Dadurch kann die Methode über den POST-Aufruf aufgerufen werden. Die Attribute „RequestFormat“ und „ResponseFormat“ müssen als JSON angegeben werden, da die Werte beim Posten von Werten an einen RESTFul-Webdienst in diesem Format vorliegen müssen. Beachten Sie, dass der Methodenparameter auf „DELETE“ gesetzt ist. Dies bedeutet, dass diese Methode immer dann aufgerufen wird, wenn wir das DELETE-Verb ausgeben.
- Die zweite Codezeile wird verwendet, um die über den DELETE-Aufruf gesendete Tutorialid zu übernehmen und diese ID anschließend aus unserer Liste zu löschen. (Der Int32 Die Funktion im Code wird verwendet, um die Tutorial-ID von einer Zeichenfolgenvariablen in eine Ganzzahl umzuwandeln.
Ausführen Ihres ersten Restful-Webdienstes
Nachdem wir nun im obigen Abschnitt unseren gesamten Webservice erstellt haben. Sehen wir uns an, wie wir den Tutorial-Dienst so ausführen können, dass er von jedem Client aus aufgerufen werden kann.
Um den Webdienst auszuführen, befolgen Sie bitte die folgenden Schritte
Schritt 1) Klicken Sie mit der rechten Maustaste auf die Projektdatei – Webservice.REST
Schritt 2) Wählen Sie die Menüoption „Als Startprojekt festlegen“. Dadurch wird sichergestellt, dass dieses Projekt ausgeführt wird, wenn Visual Studio die gesamte Lösung ausführt.
Schritt 3) Der nächste Schritt besteht darin, das Projekt selbst auszuführen. Abhängig vom auf dem System installierten Standardbrowser wird nun der entsprechende Browsername neben der Schaltfläche „Ausführen“ in Visual Studio angezeigt. In unserem Fall haben wir Google Chrome angezeigt. Klicken Sie einfach auf diese Schaltfläche.
Ausgabe:-
Wenn das Projekt ausgeführt wird, können Sie zum Abschnitt „TutorialService.svc/Tutorial“ navigieren und erhalten die folgende Ausgabe.
In der obigen Ausgabe:
- Sie können sehen, dass der Browser das Verb „GET“ aufruft und die Methode „GetAllTutorial“ im Webdienst ausführt. Dieses Modul wird verwendet, um alle von unserem Webdienst bereitgestellten Tutorials anzuzeigen.
Testen Sie Ihren ersten Restful-Webdienst
Im obigen Abschnitt haben wir bereits gesehen, wie man mit dem Browser das Verb „GET“ ausführt und „GetAllTutorial“ aufruft.
- Lassen Sie uns nun den Browser verwenden, um das folgende Anwendungsszenario auszuführen.
GET Tutorial/Tutorialid – Wenn ein Client diese Restful-API aufruft, erhält er den Tutorial-Namen basierend auf dem vom Client gesendeten Tutorialid
Hängen Sie in Ihrem Browser die Zeichenfolge /1 nach dem Tutorial-Wort in der URL an. Wenn Sie die Eingabetaste drücken, erhalten Sie die folgende Ausgabe
Jetzt sehen Sie die Ausgabe von Queues, die tatsächlich der Nummer 1 in unserer Liste der Tutorial-Strings entspricht. Das bedeutet, dass die Methode „GetTutorialbyID“ jetzt von unserem Webservice aufgerufen wird. Es zeigt auch, dass der Wert 1 erfolgreich über den Browser an unseren Webdienst und unsere Methode übergeben wird und wir daher den korrekten entsprechenden Wert von „Warteschlangen“ im Browser erhalten.
- Als Nächstes nutzen wir unseren Webdienst, indem wir das folgende Szenario ausführen. Dazu müssen Sie das Tool namens „Fiddler„Das ist ein kostenloses herunterladbares Tool von der Website.
POST Tutorial/Tutorialname – Wenn ein Client diese Restful-API aufruft, sendet der Client eine Anfrage zum Einfügen eines Tutorialnamens. Der Webdienst fügt dann den übermittelten Tutorial-Namen zur Sammlung hinzu.
Führen Sie das Filddler-Tool aus und führen Sie die folgenden Schritte aus:
- Gehen Sie zum Abschnitt „Composer“. Dieser wird zum Erstellen von Anfragen verwendet, die an jede beliebige Webanwendung gesendet werden können.
- Stellen Sie sicher, dass der Anfragetyp „POST“ ist und die richtige URL aufgerufen wird, was in unserem Fall der Fall sein sollte http://localhost:52645/TutorialService.svc/Tutorial
- Stellen Sie sicher, dass der Inhaltstyp als application/json markiert ist. Denken Sie daran, dass unsere POST-Anfragemethode in unserem Webdienst nur Daten im JSON-Stil akzeptiert. Daher müssen wir sicherstellen, dass dies angegeben wird, wenn wir eine Anfrage an unsere Anwendung senden.
- Abschließend müssen wir noch unsere Daten eingeben. Denken Sie daran, dass unsere Methode für POST einen Parameter namens „str“ akzeptiert. Hier geben wir also an, dass wir unserer Sammlung von Tutorial-Namen einen Wert namens „Trees“ hinzufügen und sicherstellen möchten, dass er mit dem Namen der str-Variablen markiert ist.
Klicken Sie abschließend einfach in Fiddler auf die Schaltfläche „Ausführen“. Dadurch wird eine Anforderung an den Webdienst gesendet, die Daten „Bäume“ per POST an unseren Webdienst zu senden.
Wenn wir nun zur Tutorial-URL navigieren, um alle Zeichenfolgen in unserer Tutorial-Liste anzuzeigen, sehen Sie nun, dass auch der Wert „Bäume“ vorhanden ist. Dies zeigt, dass die POST-Anfrage an den Webdienst erfolgreich ausgeführt und erfolgreich zu unserer Tutorial-Liste hinzugefügt wurde.
- Als nächstes nutzen wir unseren Webdienst, indem wir das folgende Szenario ausführen. Auch dafür müssen wir das Fiddler-Tool verwenden
DELETE Tutorial/Tutorialid – Wenn ein Client diese Restful-API aufruft, sendet der Client eine Anfrage zum Löschen eines Tutorialnamens basierend auf dem Tutorialid. Der Webdienst löscht dann den übermittelten Tutorial-Namen aus der Sammlung.
Führen Sie das Filddler-Tool aus und führen Sie die folgenden Schritte aus
- Gehen Sie zum Abschnitt „Composer“. Dieser wird zum Erstellen von Anfragen verwendet, die an jede beliebige Webanwendung gesendet werden können.
- Stellen Sie sicher, dass der Anfragetyp „DELETE“ ist und die richtige URL aufgerufen wird, was in unserem Fall der Fall sein sollte http://localhost:52645/TutorialService.svc/Tutorial. Stellen Sie sicher, dass die ID, die zum Löschen einer Zeichenfolge in der Liste verwendet wird, über die URL als Parameter gesendet wird. In unserem REST-Beispiel senden wir 1, sodass dadurch die 2 gelöscht wirdnd Element in unserer Sammlung, nämlich „Warteschlangen“.
Klicken Sie abschließend einfach in Fiddler auf die Schaltfläche „Ausführen“. Dadurch wird eine Anforderung an den Webdienst gesendet, die Datenwarteschlangen in unserem Webdienst zu LÖSCHEN.
Wenn wir nun zur Tutorial-URL navigieren, um alle Zeichenfolgen in unserer Tutorial-Liste anzuzeigen, werden Sie feststellen, dass der Wert „Warteschlangen“ nicht mehr vorhanden ist.
Dies zeigt, dass die DELETE-Anforderung an den Webdienst erfolgreich ausgeführt wurde. Das Element mit Indexnummer 1 in unserer Liste der Tutorial-Strings wurde erfolgreich gelöscht.
Zusammenfassung
- REST steht für REpresentational State Transfer. REST wird verwendet, um Webdienste zu erstellen, die von Natur aus leichtgewichtig, wartbar und skalierbar sind.
- Immer mehr Anwendungen wechseln zur Restful-Architektur. Dies liegt daran, dass immer mehr Menschen mobile Geräte verwenden und immer mehr Anwendungen in die Cloud verlagert werden.
- Die Hauptaspekte von REST sind die Ressourcen, die sich auf dem Server befinden, und die Verben GET, POST, PUT und DELETE, die zum Arbeiten mit diesen Ressourcen verwendet werden können.
- Mit Visual Studio und .Net können Restful-Webdienste erstellt werden.
- Wann Testen Webdienste für POST und PUT: Sie müssen ein anderes Tool namens Fiddler verwenden, mit dem die POST- und PUT-Anfragen an den Server gesendet werden können.