Tutorial zu RESTful Webdiensten: Beispiel für eine REST-API
⚡ Intelligente Zusammenfassung
RESTful Web Services bieten einen schlanken, zustandslosen Ansatz für Anwendungen, um Daten über HTTP mithilfe von Standardverben auszutauschen. Sie stellen Ressourcen über saubere Schnittstellen bereit. URLs, wodurch eine skalierbare, plattformunabhängige Kommunikation zwischen verteilten Clients, Servern, mobilen Geräten und modernen Cloud- und KI-Plattformen ermöglicht wird.
Was sind Restful Web Services?
Erholsame Webdienste Ein RESTful-Webdienst ist ein leichtgewichtiger, wartungsfreundlicher und skalierbarer Dienst, der auf der REST-Architektur basiert. Er stellt dem aufrufenden Client eine API Ihrer Anwendung sicher, einheitlich und zustandslos zur Verfügung. Der Client kann dann vordefinierte Operationen mithilfe des RESTful-Dienstes ausführen. Das zugrundeliegende Protokoll für REST ist HTTP; REST steht für Representational State Transfer (Repräsentationaler Zustandstransfer).
Vereinfacht ausgedrückt definiert REST einen Standard für die Erstellung, das Lesen, Aktualisieren und Löschen von Ressourcen wie Dokumenten, Bildern oder Datenbankeinträgen über das Web. Da es auf dem einfachen HTTP-Protokoll basiert, kann nahezu jede Programmiersprache oder jedes Gerät einen RESTful-Dienst ohne spezielle Tools nutzen.
Warum RESTful Web Services nutzen?
Bevor wir uns mit den technischen Details befassen, ist es hilfreich zu verstehen, warum REST so populär wurde. RESTful Web Services erlangten aus folgenden Gründen an Bedeutung:
1. Heterogene Sprachen und Umgebungen – Dies ist einer der Hauptgründe, derselbe, den wir bereits bei anderen Beispielen gesehen haben. SOAP .
- Es ermöglicht Webanwendungen, die auf verschiedenen Programmiersprachen basieren, miteinander zu kommunizieren.
- Mithilfe von RESTful-Diensten können diese Webanwendungen in verschiedenen Umgebungen ausgeführt werden; einige könnten beispielsweise auf … laufen. Windows, und andere könnten unter Linux laufen.
Letztendlich sollte das Ergebnis unabhängig von der Umgebung immer dasselbe sein: Die Anwendungen sollten miteinander kommunizieren können. RESTful-Webdienste bieten diese Flexibilität für Anwendungen, die auf verschiedenen Programmiersprachen und Plattformen entwickelt wurden.
Das folgende Bild zeigt ein Beispiel für eine Webanwendung, die mit anderen Anwendungen wie Facebook, Twitter und … kommunizieren muss. Google.
Wenn eine Client-Anwendung mit Websites wie Facebook und Twitter interagieren soll, müssten die Entwickler normalerweise wissen, auf welcher Programmiersprache und Plattform diese Websites basieren. Darauf aufbauend könnten sie den Schnittstellencode schreiben, doch dieser Ansatz könnte sich als äußerst wartungsaufwändig erweisen.
Stattdessen Facebook, Twitter und Google Sie stellen ihre Funktionalität in Form von RESTful-Webdiensten bereit. Dadurch kann jede Clientanwendung diese Webdienste über REST aufrufen, unabhängig von der zugrunde liegenden Technologie.
2. Das Ereignis der Geräte – Heutzutage muss an allem gearbeitet werden Mobil Geräte, seien es Mobiltelefone, Notebooks oder sogar Autoradios.
Stellen Sie sich den Aufwand vor, der nötig wäre, um Anwendungen für diese Geräte zu programmieren, die mit herkömmlichen Webanwendungen kommunizieren. RESTful APIs vereinfachen diese Aufgabe erheblich, da man, wie bereits erwähnt, die zugrundeliegende Schicht des Geräts nicht kennen muss.
3. Das Ereignis der Wolke Alles wandert in die Cloud. Anwendungen migrieren langsam zu cloudbasierten Systemen wie beispielsweise … Azure or Amazon. Azure und Amazon Viele APIs basieren auf der RESTful-Architektur. Daher müssen Anwendungen heutzutage so entwickelt werden, dass sie mit der Cloud kompatibel sind. Da alle Cloud-basierten Architekturen auf dem REST-Prinzip beruhen, ist es sinnvoll, Webdienste auf einer REST-basierten Architektur zu programmieren, um Cloud-Dienste optimal zu nutzen.
RESTful-Schlüsselelemente
REST-Webdienste haben seit ihrer Entstehung eine bemerkenswerte Entwicklung durchlaufen. Im Jahr 2002 veröffentlichte das Web Consortium die Definitionen von WSDL- und SOAP-Webdiensten. Diese bildeten den Standard für die Implementierung von Webdiensten.
Im Jahr 2004 veröffentlichte das Web Consortium außerdem die Definition eines weiteren Standards namens RESTful. In den letzten Jahren hat sich dieser Standard großer Beliebtheit erfreut und wird mittlerweile von vielen der weltweit bekanntesten Websites, darunter Facebook und Twitter, verwendet.
REST ist eine Methode, um auf Ressourcen in einer bestimmten Umgebung zuzugreifen. Beispielsweise könnte ein Server wichtige Dokumente, Bilder oder Videos hosten. All dies sind Beispiele für Ressourcen. Benötigt ein Client, etwa ein Webbrowser, eine dieser Ressourcen, muss er eine Anfrage an den Server senden. REST-Dienste definieren einen Standard für den Zugriff auf diese Ressourcen.
Die Schlüsselelemente einer RESTful-Implementierung sind wie folgt:
- Ressourcen – Das erste Schlüsselelement ist die Ressource selbst. Nehmen wir an, eine Webanwendung auf einem Server verfügt über Datensätze mehrerer Mitarbeiter. Nehmen wir an, die URL der Webanwendung ist https://demo.guru99.comUm nun über REST-Dienste auf eine Mitarbeiterdatensatzressource zuzugreifen, kann man den folgenden Befehl ausführen: https://demo.guru99.com/employee/1Dieser Befehl weist den Webserver an, die Details des Mitarbeiters mit der Mitarbeiternummer 1 bereitzustellen.
- Fordern Sie Verben an Diese Angaben beschreiben, was Sie mit der Ressource tun möchten. Ein Browser verwendet den Befehl GET, um dem Endpunkt mitzuteilen, dass er Daten abrufen möchte. Es stehen jedoch viele weitere Befehle zur Verfügung, darunter POST, PUT und DELETE. Im Beispiel… https://demo.guru99.com/employee/1Der Webbrowser sendet tatsächlich eine GET-Anfrage, weil er die Details des Mitarbeiterdatensatzes abrufen möchte.
- Header anfordern Dies sind zusätzliche Anweisungen, die mit der Anfrage gesendet werden. Sie können die Art der erforderlichen Antwort oder die Autorisierungsdetails definieren.
- Körper anfordern Dies sind die Daten, die mit der Anfrage gesendet werden. Daten werden normalerweise im Anfragetext übermittelt, wenn eine POST-Anfrage an den REST-Webdienst gestellt wird. Bei einem POST-Aufruf teilt der Client dem REST-Webdienst mit, dass er eine Ressource zum Server hinzufügen möchte. Daher enthält der Anfragetext die Details der hinzuzufügenden Ressource.
- Antwortgremium Dies ist der Hauptteil der Antwort. Wenn wir also in unserem RESTful-API-Beispiel den Webserver über die Anfrage abfragen würden, … https://demo.guru99.com/employee/1Der Webserver könnte ein XML-Dokument zurückgeben, dessen Antworttext alle Details des Mitarbeiters enthält.
- Antwortstatuscodes Dies sind die allgemeinen Codes, die zusammen mit der Antwort des Webservers zurückgegeben werden. Ein Beispiel ist der Code 200, der normalerweise zurückgegeben wird, wenn bei der Antwort an den Client kein Fehler aufgetreten ist.
Erholsame Methoden
Das untenstehende Diagramm zeigt die meisten Verben (POST, GET, PUT und DELETE) und ein REST-API-Beispiel, das ihre Bedeutung veranschaulicht.
Nehmen wir an, wir haben einen RESTful-Webdienst unter folgendem Standort definiert: https://demo.guru99.com/employeeWenn der Client eine Anfrage an diesen Webdienst sendet, kann er eines der üblichen HTTP-Verben GET, POST, DELETE oder PUT angeben. Im Folgenden wird beschrieben, was passieren würde, wenn die jeweiligen Verben vom Client gesendet würden.
- jetzt lesen – Dies würde dazu verwendet, einen neuen Mitarbeiter mithilfe des RESTful-Webdienstes anzulegen.
- STARTE – Dies würde dazu verwendet werden, mithilfe des RESTful-Webdienstes eine Liste aller Mitarbeiter zu erhalten.
- SETZEN – Dies würde dazu verwendet, alle Mitarbeiter mithilfe des RESTful-Webdienstes auf dem Laufenden zu halten.
- LÖSCHEN – Dies würde dazu verwendet, alle Mitarbeiter mithilfe des RESTful-Dienstes zu löschen.
Betrachten wir nun die Sache aus der Perspektive eines einzelnen Datensatzes. Nehmen wir an, es gäbe einen Mitarbeiterdatensatz mit der Mitarbeiternummer 1. Die folgenden Aktionen hätten dann ihre jeweilige Bedeutung.
- jetzt lesen – Dies wäre nicht anwendbar, da wir Daten von Mitarbeiter 1 abrufen, der bereits angelegt ist.
- STARTE – Dies würde dazu verwendet, die Details des Mitarbeiters mit der Mitarbeiternummer 1 mithilfe des RESTful-Webdienstes abzurufen.
- SETZEN – Dies würde dazu verwendet, die Daten des Mitarbeiters mit der Mitarbeiternummer 1 mithilfe des RESTful-Webdienstes zu aktualisieren.
- LÖSCHEN – Dies dient dazu, die Daten des Mitarbeiters mit der Mitarbeiternummer 1 zu löschen.
Erholsam Architektur
Eine Anwendung oder Architektur, die als RESTful oder REST-ähnlich gilt, weist die folgenden Merkmale auf.
1. Zustand und Funktionalität werden in verteilte Ressourcen unterteilt Das bedeutet, dass jede Ressource über die üblichen HTTP-Befehle GET, POST, PUT und DELETE zugänglich sein sollte. Um eine Datei von einem Server abzurufen, sollte dies per GET-Anfrage möglich sein. Zum Hochladen einer Datei auf den Server kann entweder eine POST- oder eine PUT-Anfrage gesendet werden. Und um eine Datei vom Server zu löschen, kann eine DELETE-Anfrage gesendet werden.
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 wurde, muss eine GET-Anfrage gesendet werden. Mit dieser GET-Anfrage werden zunächst alle Ressourcen auf dem Server abgerufen. Anschließend wird geprüft, ob die Ressource tatsächlich gelöscht wurde.
RESTFul-Prinzipien und Einschränkungen
Die REST-Architektur basiert auf einigen Merkmalen, die im Folgenden erläutert werden. Jeder RESTful-Webdienst muss diese Merkmale erfüllen, um als RESTful bezeichnet werden zu dürfen. Diese Merkmale werden auch als Designprinzipien bezeichnet, die bei der Entwicklung von RESTful-basierten Diensten beachtet werden müssen.
Dies ist die grundlegendste Voraussetzung einer REST-basierten Architektur. Das bedeutet, dass der Server einen RESTful-Webdienst bereitstellt, der dem Client die benötigte Funktionalität bietet. Der Client sendet eine Anfrage an den Webdienst auf dem Server. Der Server lehnt die Anfrage entweder ab oder beantwortet sie und liefert dem Client eine entsprechende Antwort.
- Staatenlos
Das Konzept der Zustandslosigkeit bedeutet, dass der Client dafür verantwortlich ist, dem Server alle erforderlichen Informationen bereitzustellen. Dies ist notwendig, damit der Server die Antwort korrekt verarbeiten kann. Der Server sollte keinerlei Informationen zwischen den Client-Anfragen speichern. Es handelt sich um eine sehr einfache, unabhängige Frage-Antwort-Sequenz. Der Client stellt eine Frage, und der Server beantwortet sie entsprechend. Wenn der Client eine weitere Frage stellt, erinnert sich der Server nicht an den vorherigen Frage-Antwort-Ablauf und muss die neue Frage unabhängig beantworten.
- Cache
Das Cache-Konzept hilft bei der Lösung des im vorherigen Punkt beschriebenen Problems der Zustandslosigkeit. Da jede Client-Server-Anfrage unabhängig ist, kann es vorkommen, dass ein Client dieselbe Anfrage erneut an den Server sendet, obwohl er sie bereits zuvor gestellt hat. Diese Anfrage wird an den Server gesendet, der daraufhin eine Antwort liefert, was den Netzwerkverkehr erhöht. Der Cache ist ein clientseitig implementiertes Konzept, das bereits an den Server gesendete Anfragen speichert. Stellt der Client dieselbe Anfrage erneut, greift er, anstatt sie an den Server zu senden, auf den Cache zu und ruft die benötigten Informationen ab. Dadurch wird der unnötige Netzwerkverkehr zwischen Client und Server reduziert.
- Geschichtetes System
Das Konzept eines geschichteten Systems besteht darin, dass jede zusätzliche Schicht, beispielsweise eine Middleware-Schicht, zwischen Client und dem eigentlichen Server, der den RESTful-Webdienst hostet, eingefügt werden kann. (In der Middleware-Schicht wird die gesamte Geschäftslogik implementiert. Dies kann ein zusätzlicher Dienst sein, mit dem der Client interagiert, bevor er den Webdienst aufruft.) Die Einführung dieser Schicht muss jedoch transparent erfolgen, damit die Interaktion zwischen Client und Server nicht beeinträchtigt wird.
- Schnittstelle/Einheitliche Verbindungtract
Dies ist die grundlegende Technik, nach der RESTful-Webdienste funktionieren. RESTful arbeitet im Wesentlichen auf der HTTP-Webschicht und verwendet die unten aufgeführten Schlüsselverben, um mit Ressourcen auf dem Server zu interagieren.
- POST – Zum Erstellen einer Ressource auf dem Server.
- GET – Zum Abrufen einer Ressource vom Server.
- PUT – Um den Zustand einer Ressource zu ändern oder sie zu aktualisieren.
- LÖSCHEN – Eine Ressource vom Server entfernen oder löschen.
REST vs. SOAP: Die wichtigsten Unterschiede
Entwickler wägen bei der Entwicklung von Webdiensten häufig REST gegen SOAP ab. Beide ermöglichen die Kommunikation verteilter Anwendungen, unterscheiden sich aber grundlegend in ihrer Philosophie. REST ist ein Architekturstil, der einfache HTTP-Verben und leichtgewichtige Formate wie JSON verwendet, während SOAP ist ein strenges Protokoll, das auf XML-Umschlägen und einer formalen Konjunktion basiert.tract. Die folgende Tabelle fasst die wichtigsten Unterschiede zusammen.
| Aspekt | REST | SOAP |
|---|---|---|
| Typ | ArchiBaustil | Strenges Protokoll |
| Datei Format | JSON, XML, Klartext, HTML | Nur XML |
| Transport | HTTP-only | HTTP, SMTP, TCP und andere |
| Staat | Staatenlos | Staatenlos oder staatenbehaftet |
| Leistung | Schneller und leichter | Schwerer aufgrund des XML-Overheads |
| am besten für | Web-, Mobil- und öffentliche APIs | Unternehmensanwendungen, die strenge Sicherheitsanforderungen erfüllen |
In der Praxis ist REST die Standardwahl für öffentliche Web- und mobile APIs, da es schneller und einfacher zu nutzen ist, während SOAP weiterhin für Unternehmenssysteme nützlich ist, die integrierte Sicherheit und formale Konformität erfordern.tracts.
Erstellen Sie Ihren ersten Restful-Webdienst in ASP.NET
In diesem REST-API-Tutorial lernen wir, wie man einen RESTful-Webdienst in ASP.NET erstellt.
Webdienste können in einer Vielzahl von Sprachen erstellt werden, und viele integrierte Entwicklungsumgebungen können zur Erstellung von REST-basierten Diensten verwendet werden.
In diesem Beispiel einer RESTful-API erstellen wir unsere REST-Anwendung in .NET mit Visual Studio. Wir entwickeln einen RESTful-Webdienst, der mit den unten stehenden Daten arbeitet.
Die unten stehenden Daten stellen ein Beispiel für eine REST-API eines Unternehmens dar, das seine Tutorials anhand der Tutorialid zugänglich macht.
| Tutorialid | TutorialName |
|---|---|
| 0 | Arrays |
| 1 | Queues |
| 2 | Stacks |
In unserem REST-API-Tutorialbeispiel werden wir die folgenden Restful-Verben implementieren.
- Holen Sie sich das Tutorial – Wenn ein Client diese Restful-API aufruft, erhält er alle Tutorials, die über den Webdienst verfügbar sind.
- GET Tutorial/Tutorialid – Wenn ein Client diese Restful-API aufruft, wird ihm der Tutorial-Name basierend auf der vom Client gesendeten Tutorial-ID zugewiesen.
- POST-Tutorial/Tutorialname Wenn ein Client diese RESTful-API aufruft, sendet er eine Anfrage zum Einfügen eines Tutorialnamens. Der Webdienst fügt den übermittelten Tutorialnamen dann der Sammlung hinzu.
- Tutorial/Tutorialid löschen Wenn ein Client diese RESTful-API aufruft, sendet er eine Anfrage zum Löschen eines Tutorialnamens anhand der Tutorial-ID. Der Webdienst löscht dann den gesendeten Tutorialnamen aus der Sammlung.
Folgen wir den nachstehenden Schritten, um unseren ersten RESTful-Webdienst zu erstellen, der die obige Implementierung durchführt.
So erstellen Sie Ihren ersten erholsamen Webdienst
Schritt 1) Erstellen Sie ein neues Projekt.
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 „Neues Projekt“ klicken, öffnet Visual Studio ein weiteres Dialogfeld, in dem Sie den Projekttyp auswählen und die erforderlichen Details eingeben können. Dies wird im nächsten Schritt erläutert.
Schritt 2) Geben Sie den Projektnamen und den Standort ein.
- Stellen Sie sicher, dass Sie zuerst das auswählen C# Webvorlage der ASP.NET-Webanwendung. Das Projekt muss von diesem Typ sein, um ein Webdienstprojekt zu erstellen. Bei Auswahl dieser Option führt Visual Studio die notwendigen Schritte zum Hinzufügen der erforderlichen Dateien für jede webbasierte Anwendung aus.
- Geben Sie Ihrem Projekt einen Namen, in unserem Fall „Webservice.REST“.
- Stellen Sie anschließend sicher, dass Sie einen Speicherort für die Projektdateien angeben.
Nach Abschluss des Vorgangs wird die erstellte Projektdatei im Projektmappen-Explorer von Visual Studio 2013 angezeigt.
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 dargestellt.
- In diesem Schritt
- Klicken Sie mit der rechten Maustaste auf die Projektdatei.
- Wählen Sie die Option „Hinzufügen->Neues Element“.
Im daraufhin erscheinenden Dialogfeld müssen Sie folgende Schritte ausführen.
- Wählen Sie die Option „WCF-Dienst (Ajax-fähig)“. Wenn Sie eine Datei dieses Typs auswählen, fügt Visual Studio automatisch grundlegenden Code hinzu, der Ihnen beim Erstellen eines RESTful-Webdienstes hilft. WCF steht für … Windows Kommunikation FoundationWCF ist eine Bibliothek, mit der Anwendungen verschiedener Plattformen (oder derselben Plattform) über verschiedene Protokolle wie TCP, HTTP und HTTPS kommunizieren können. Ajax ist asynchron. JavaSkript und XML. AJAX ermöglicht die asynchrone Aktualisierung von Webseiten durch den Austausch kleiner Datenmengen mit dem Server im Hintergrund.
- Als Nächstes geben Sie dem Dienst einen Namen, 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.
Im nächsten Schritt muss eine Konfigurationsänderung vorgenommen werden, damit dieses Projekt mit RESTful-Webdiensten funktioniert. Dazu ist eine Änderung an der Datei namens „…“ erforderlich. Web.configDiese Datei wird im selben Fenster wie die Webservice-Projektdatei angezeigt. Die Datei „Web.config“ enthält alle Konfigurationen, die für die korrekte Funktion der Webanwendung erforderlich sind. Die vorgenommene Änderung ermöglicht es der Anwendung, Daten als reiner RESTful-Webservice zu senden und zu empfangen.
- Klicken Sie auf die Datei Web.config, um den Code zu öffnen.
- Finde die Linie Die
- Ändern Sie die Zeile in Die
Schritt 5) Fügen Sie unseren Code zur Implementierung hinzu.
Im nächsten Schritt fügen wir unseren Implementierungscode hinzu. Der gesamte unten stehende Code muss in die Datei TutorialService.svc geschrieben werden.
- Zunächst fügen wir Code hinzu, der unsere Daten repräsentiert, die wir in unserem Programm verwenden werden. Wir benötigen also eine Liste von String-Variablen mit den Werten „Arrays“, „Queues“ und „Stacks“. Diese repräsentieren die Tutorial-Namen, die über unseren Hosting-Webdienst 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 ebenfalls in der Datei TutorialService.svc. Er wird immer dann ausgeführt, wenn wir den Dienst über unseren Browser aufrufen.
Die unten beschriebene Methode wird verwendet, um das folgende Szenario zu realisieren.
- Wenn ein Benutzer eine Liste aller verfügbaren Tutorials wünscht, müsste der unten stehende Code geschrieben werden, um dies zu erreichen.
[WebGet(UriTemplate = "/Tutorial")] public String GetAllTutorial() { int count = lst.Count; String TutorialList = ""; for (int i = 0; i < count; i++) TutorialList = TutorialList + lst[i] + ","; return TutorialList; }
Code Erläuterung:-
- Die erste Codezeile ist die wichtigste. Sie definiert, wie wir diese Methode über einen aufrufen können. URLWenn also der Link zu unserem Webdienst lautet http://localhost:52645/TutorialService.svc und wir hängen '/Tutorial' an die URL, Wie in http://localhost:52645/TutorialService.svc/TutorialDer obige Code wird aufgerufen. Das Attribut „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 unten stehende 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 Erläuterung:-
- Die erste Codezeile ist die wichtigste. Sie definiert, wie wir diese Methode über einen aufrufen können. URLWenn also der Link zu unserem Webdienst lautet http://localhost:52645/TutorialService.svc und wir hängen '/Tutorial/{Tutorialid}' an die URLWir könnten den Webdienst dann aufrufen als http://localhost:52645/TutorialService.svc/Tutorial/1Beispielsweise würde der Webdienst den Namen des Tutorials zurückgeben, das die Tutorial-ID 1 hat.
- Dieser Codeabschnitt dient dazu, den Namen des Tutorials zurückzugeben, dem die Tutorial-ID an die Webmethode übergeben wurde.
- Standardmäßig muss man sich merken, dass alles, was an die URL Im Browser ist es eine Zeichenkette.
- Sie müssen jedoch bedenken, dass der Index unserer Liste eine ganze Zahl sein muss. Deshalb fügen wir den notwendigen Code hinzu, um die Tutorialid zuerst in eine ganze Zahl umzuwandeln.
- Wir verwenden sie dann, um auf die Indexposition in unserer Liste zuzugreifen und den Wert entsprechend an das aufrufende Programm zurückzugeben.
Schritt 8) Schreiben Sie den Code für die POST-Methode.
Im nächsten Schritt schreiben wir den Code für unsere POST-Methode. Diese Methode wird immer dann aufgerufen, wenn wir einen String-Wert per POST-Anfrage zu unserer Tutorial-Liste hinzufügen möchten. Wenn Sie beispielsweise den Tutorial-Namen „Software Testing“ hinzufügen möchten, verwenden Sie die POST-Methode.
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/Tutorial/{str}")] public void AddTutorial(String str) { lst.Add(str); }
Code Erläuterung:-
- Die erste Zeile ist das Attribut „WebInvoke“, das unserer Methode zugewiesen wurde. Dadurch kann die Methode per POST-Anfrage aufgerufen werden. Die Attribute „RequestFormat“ und „ResponseFormat“ müssen als JSON angegeben werden, da Werte beim Senden an einen RESTful-Webdienst in diesem Format vorliegen müssen.
- Die zweite Codezeile dient dazu, den über den POST-Aufruf übergebenen String-Wert zu unserer bestehenden Liste von Tutorial-Strings hinzuzufügen.
Schritt 9) Fügen Sie eine Methode zur Behandlung der DELETE-Operation hinzu.
Abschließend fügen wir unsere Methode zur Behandlung der DELETE-Operation hinzu. Diese Methode wird immer dann aufgerufen, wenn wir einen vorhandenen String-Wert aus unserer Liste von Tutorials mittels der DELETE-Methode 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); lst.RemoveAt(pid); }
Code Erläuterung:-
- Die erste Zeile ist das Attribut „WebInvoke“, das unserer Methode zugewiesen wurde. Dadurch kann die Methode über den DELETE-Befehl aufgerufen werden. Die Attribute „RequestFormat“ und „ResponseFormat“ müssen als JSON angegeben werden, da die Werte in diesem Format vorliegen müssen. Beachten Sie, dass der Parameter „Method“ auf „DELETE“ gesetzt ist. Das bedeutet, dass diese Methode immer dann aufgerufen wird, wenn der Befehl „DELETE“ ausgeführt wird.
- 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 (Diese Funktion im Code dient dazu, die Tutorial-ID von einer String-Variablen in eine Ganzzahl umzuwandeln.)
Ausführen Ihres ersten Restful-Webdienstes
Nachdem wir nun im vorangegangenen Abschnitt unseren gesamten Webdienst erstellt haben, wollen wir uns ansehen, 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 Projektmappe ausführt.
Schritt 3) Der nächste Schritt ist das Ausführen des Projekts. Abhängig vom auf dem System installierten Standardbrowser wird der entsprechende Browsername neben der Schaltfläche „Ausführen“ in Visual Studio angezeigt. In unserem Fall lautet der Name des Browsers: 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 unten stehende Ausgabe.
In der obigen Ausgabe,
- Sie können sehen, dass der Browser die GET-Anfrage aufruft und die Methode „GetAllTutorial“ des Webdienstes ausführt. Dieses Modul dient dazu, alle vom Webdienst bereitgestellten Tutorials anzuzeigen.
Testen Sie Ihren ersten Restful-Webdienst
Im vorangegangenen Abschnitt haben wir bereits gesehen, wie man mit dem Browser den Befehl '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, wird ihm der Tutorialname basierend auf der vom Client gesendeten Tutorialid zugewiesen.
Fügen Sie in Ihrem Browser die Zeichenkette /1 nach dem Wort „Tutorial“ im folgenden Text ein: URLWenn Sie die Eingabetaste drücken, erhalten Sie die unten stehende Ausgabe.
Sie sehen nun die Ausgabe von „Queues“, die der Zahl 1 in unserer Liste der Tutorial-Strings entspricht. Dies bedeutet, dass die Methode „GetTutorialbyID“ nun von unserem Webdienst aufgerufen wird. Es zeigt außerdem, dass der Wert 1 erfolgreich über den Browser an unseren Webdienst und unsere Methode übergeben wird. Daher erhalten wir im Browser den korrekten Wert für „Queues“.
- Als Nächstes nutzen wir unseren Webdienst, indem wir das unten stehende Szenario ausführen. Dazu müssen Sie das Tool namens „…“ installieren. Fiddler, das als kostenloses Tool heruntergeladen werden kann.
POST Tutorial/Tutorialname – Wenn ein Client diese RESTful-API aufruft, sendet er eine Anfrage zum Einfügen eines Tutorialnamens. Der Webdienst fügt den übermittelten Tutorialnamen dann der Sammlung hinzu.
Führen Sie die Fiddler Führen Sie die folgenden Schritte mit diesem Tool durch.
- Wechseln Sie zum Composer-Bereich. Hiermit können Sie Anfragen erstellen, die an beliebige Webanwendungen gesendet werden können.
- Stellen Sie sicher, dass der Anfragetyp „POST“ ist und die korrekte URL wird getroffen, was in unserem Fall sein sollte http://localhost:52645/TutorialService.svc/Tutorial.
- Stellen Sie sicher, dass der Content-Type auf application/json gesetzt ist. Beachten Sie, dass unsere POST-Anfragemethode in unserem Webdienst nur Daten im JSON-Format akzeptiert. Daher müssen wir dies beim Senden einer Anfrage an unsere Anwendung angeben.
- Zum Schluss müssen wir unsere Daten eingeben. Unsere POST-Methode akzeptiert einen Parameter namens „str“. Hier geben wir also an, dass wir einen Wert namens „Trees“ zu unserer Sammlung von Tutorialnamen hinzufügen und ihn dem Variablennamen „str“ zuordnen möchten.
Klicken Sie abschließend einfach auf die Schaltfläche „Ausführen“ in FiddlerDadurch wird eine Anfrage an den Webdienst gesendet, um die Daten „Bäume“ an unseren Webdienst zu übermitteln.
Wenn wir nun zum Tutorial navigieren URL Um alle Einträge unserer Tutorialliste anzuzeigen, sehen Sie, dass auch der Wert „Trees“ vorhanden ist. Dies zeigt, dass die POST-Anfrage an den Webdienst erfolgreich ausgeführt und der Eintrag erfolgreich unserer Tutorialliste hinzugefügt wurde.
- Als Nächstes nutzen wir unseren Webdienst, indem wir das unten stehende Szenario ausführen. Dazu benötigen wir außerdem die folgende Funktion: Fiddler Werkzeug.
Tutorial/Tutorialid löschen – Wenn ein Client diese RESTful-API aufruft, sendet er eine Anfrage zum Löschen eines Tutorialnamens anhand der Tutorialid. Der Webdienst löscht dann den gesendeten Tutorialnamen aus der Sammlung.
Führen Sie die Fiddler Führen Sie die folgenden Schritte mit diesem Tool durch.
- Wechseln Sie zum Composer-Bereich. Hiermit können Sie Anfragen erstellen, die an beliebige Webanwendungen gesendet werden können.
- Stellen Sie sicher, dass der Anfragetyp „LÖSCHEN“ lautet und die korrekte URL wird getroffen, was in unserem Fall sein sollte http://localhost:52645/TutorialService.svc/TutorialStellen Sie sicher, dass die ID, die zum Löschen einer Zeichenkette in der Liste verwendet wird, über die URL als Parameter. In unserem REST-Beispiel senden wir 1, daher wird die 2 gelöscht.nd Element in unserer Sammlung, nämlich „Warteschlangen“.
Klicken Sie abschließend einfach auf die Schaltfläche „Ausführen“ in FiddlerDadurch wird eine Anfrage an den Webdienst gesendet, um die Daten „Queues“ aus unserem Webdienst zu LÖSCHEN.
Wenn wir nun zum Tutorial navigieren URL Wenn Sie alle Zeichenketten in unserer Tutorialliste sehen, werden Sie feststellen, dass der Wert von „Queues“ nicht mehr vorhanden ist.
Dies zeigt, dass die DELETE-Anfrage an den Webdienst erfolgreich ausgeführt wurde. Das Element an Indexnummer 1 in unserer Liste der Tutorial-Zeichenketten wurde erfolgreich gelöscht.
RESTful API – Best Practices
Eine funktionierende REST-API zu entwickeln ist nur der erste Schritt; eine skalierbare und wartungsfreundliche API erfordert Disziplin. Die folgenden Vorgehensweisen tragen dazu bei, dass Ihre Endpunkte vorhersehbar, sicher und für andere Entwickler sowie KI-Systeme einfach nutzbar sind.
- Verwenden Sie Substantive, keine Verben, in URLs. Endpunkte wie /employees/1 sind klarer als /getEmployee?id=1weil das HTTP-Verb die Aktion bereits beschreibt.
- Geben Sie aussagekräftige Statuscodes zurück. Senden Sie 200 für Erfolg, 201 für eine erstellte Ressource, 400 für eine fehlerhafte Anfrage, 401 für nicht autorisierten Zugriff, 404 für eine fehlende Ressource und 500 für Serverfehler.
- Versionieren Sie Ihre API. Hinzufügen eines Versionssegments wie z. B. /v1/ Der Pfad ermöglicht es Ihnen, den Service weiterzuentwickeln, ohne bestehende Kunden zu beeinträchtigen.
- Sichern Sie jeden Endpunkt. Verwenden Sie HTTPS zusammen mit API-Schlüsseln oder OAuth 2.0-Tokens und validieren Sie alle eingehenden Eingaben.
- Unterstützung für Paginierung und Filterung. Das Zurückgeben großer Sammlungen auf Seiten sorgt für schnelle Antwortzeiten und reduziert die Serverlast.
Die Einhaltung dieser Konventionen macht Ihren RESTful-Webdienst intuitiv integrierbar, egal ob es sich beim Nutzer um eine mobile App, ein Partnersystem oder einen automatisierten KI-Workflow handelt.




























