Verwenden eines Datendiensts in einer Clientanwendung (WCF Data Services)

Sie können auf einen Dienst, der einen Open Data Protocol (OData) -Feed verfügbar macht, zugreifen, indem Sie im Webbrowser einen URI angeben. Der URI stellt die Adresse einer Ressource bereit, und Anforderungsnachrichten werden an diese Adressen gesendet, um auf die zugrunde liegenden Daten, die die Ressource darstellt, zuzugreifen oder um diese zu ändern. Der Browser gibt einen HTTP GET-Befehl aus und gibt die angeforderte Ressource als OData -Feed zurück. Weitere Informationen finden Sie unter Zugreifen auf den Dienst in einem Webbrowser (WCF Data Services-Schnellstart).

Zwar kann ein Webbrowser nützlich sein kann, um zu testen, ob ein OData -Dienst die erwarteten Daten zurückgibt. Allerdings wird auf OData -Produktionsdienste, die zusätzlich das Erstellen, Aktualisieren und Löschen von Daten ermöglichen, in der Regel mithilfe von Anwendungscode oder Skriptsprachen einer Webseite zugegriffen. Dieses Thema bietet eine Übersicht über den Zugriff auf OData -Feeds über eine Clientanwendung.

Zugreifen auf und Ändern von Daten mit REST-Semantik

OData unterstützt die Gewährleistung der Interoperabilität zwischen Diensten, die OData -Feeds bzw. Anwendungen verfügbar machen, die OData -Feeds verwenden. Anwendungen greifen auf Daten in einem auf OData basierenden Datendienst zu und ändern diese durch das Senden von Anforderungsnachrichten einer bestimmten HTTP-Aktion und mit einem URI, der eine Entitätsressource adressiert, für die die Aktion ausgeführt werden soll. Erforderliche Entitätsdaten werden als speziell codierte Nutzlast im Nachrichtentext angegeben.

HTTP-Aktionen

OData unterstützt die folgenden HTTP-Aktionen zum Erstellen, Lesen, Aktualisieren und Löschen von Entitätsdaten, die die adressierte Ressource darstellt:

  • HTTP GET - Die Standardaktion, wenn auf eine Ressource von einem Browser aus zugegriffen wird. In der Anforderungsnachricht wird keine Nutzlast angegeben, und es wird eine Antwortmethode mit einer Nutzlast zurückgegeben, die die angeforderten Daten enthält.

  • HTTP POST – Fügt neue Entitätsdaten in die angegebene Ressource ein. Einzufügende Daten werden in der Nutzlast der Anforderungsnachricht angegeben. Die Nutzlast der Antwortnachricht enthält die Daten für die neu erstellte Entität. Dazu gehören auch alle automatisch generierten Schlüsselwerte. Der Header enthält auch den URI, der die neue Entitätsressource adressiert.

  • HTTP DELETE – Löscht die Entitätsdaten, die durch die angegebene Ressource dargestellt werden. Eine Nutzlast ist in der Anforderungs- oder Antwortnachricht nicht vorhanden.

  • HTTP PUT – Ersetzt in der angeforderten Ressource vorhandene Entitätsdaten durch neue Daten, die in der Nutzlast der Anforderungsmeldung zur Verfügung gestellt werden.

  • HTTP MERGE – Da es ineffizient ist, in der Datenquelle einen Löschvorgang gefolgt von einem Einfügevorgang auszuführen, nur um Entitätsdaten zu ändern, wird von OData eine neue HTTP MERGE-Aktion eingeführt. Die Nutzlast der Anforderungsnachricht enthält die Eigenschaften, die für die adressierte Entitätsressource geändert werden müssen. Da HTTP MERGE nicht in der HTTP-Spezifikation definiert ist, ist möglicherweise eine zusätzliche Verarbeitung zum Weiterleiten einer HTTP MERGE-Anforderung durch Server erforderlich, die nicht unterstützen.

Weitere Informationen finden Sie unter OData.

Nutzlastformate

Für eine HTTP PUT-, HTTP POST- oder HTTP MERGE-Anforderung enthält die Nutzlast einer Anforderungsnachricht die Entitätsdaten, die Sie an den Datendienst senden. Der Inhalt der Nutzlast hängt vom Datenformat der Nachricht ab. Die HTTP-Antworten auf alle Aktionen außer DELETE enthalten auch eine entsprechende Nutzlast. OData unterstützt die folgenden Nutzlastformate zum Zugreifen auf und Ändern von Daten mit dem Dienst:

  • Atom – Eine XML-basierte Nachrichtencodierung, die von OData als Erweiterung von Atom Publishing Protocol (AtomPub) definiert wird, um für Webfeeds, Podcasts, Wikis und XML-basierte Internetfunktionalität den Datenaustausch über HTTP zu ermöglichen. Weitere Informationen finden Sie unter OData.

  • JSON – JSON (JavaScript Object Notation) ist ein einfaches Datenaustauschformat, das auf einem Teil der Programmiersprache JavaScript basiert. Weitere Informationen finden Sie unter OData.

Das Nachrichtenformat der Nutzlast wird im Header der HTTP-Anforderungsnachricht angefordert. Weitere Informationen finden Sie unter OData.

Zugreifen auf und Ändern von Daten mit Clientbibliotheken

WCF Data Services enthält Clientbibliotheken, die Ihnen das Verwenden eines OData -Feeds aus .NET Framework- und Silverlight-basierten Clientanwendungen erleichtern. Diese Bibliotheken vereinfachen das Senden und Empfangen von HTTP-Nachrichten. Sie übersetzen außerdem die Nachrichtennutzlast in CLR-Objekte, die Entitätsdaten darstellen. Die Clientbibliotheken enthalten die beiden Kernklassen DataServiceContext und DataServiceQuery. Diese Klassen ermöglichen es Ihnen, einen Datendienst abzufragen und dann mit den zurückgegebenen Entitätsdaten als CLR-Objekte zu arbeiten. Weitere Informationen finden Sie unter WCF Data Services-Clientbibliothek und WCF Data Services (Silverlight).

Sie können über das Dialogfeld Dienstverweis hinzufügen in Visual Studio einem Datendienst einen Verweis hinzufügen. Dieses Tool fordert die Dienstmetadaten von einem Datendienst an, auf den verwiesen wird, und generiert den DataServiceContext, der einen Datendienst darstellt, sowie die Clientdatendienstklassen, die Entitäten darstellen. Weitere Informationen finden Sie unter Generieren der Datendienst-Clientbibliothek (WCF Data Services).

Es stehen Programmierbibliotheken zur Verfügung, mit denen Sie einen OData -Feed in anderen Arten von Clientanwendungen verwenden können. Weitere Informationen finden Sie unter OData.

Siehe auch

Konzepte

Zugreifen auf Datendienstressourcen (WCF Data Services)
Schnellstart (WCF Data Services)