Operationen mit dem REST-Datenservice

Nachdem Sie den REST-Datenservice von eXtreme Scale gestartet haben, können Sie jeden HTTP-Client für die Interaktion mit dem Service verwenden. Sie können einen Webbrowser, einen PHP-Client, einen Java-Client oder einen WCF-Data-Services-Client verwenden, um die unterstützten Anforderungsoperationen abzusetzen.

Der REST-Service implementiert einen Teil der Spezifikation Microsoft Atom Publishing Protocol: Data Services URI and Payload Extensions Version 1.0, die zum OData-Protokoll gehört. In diesem Artikel wird beschrieben, welche Features der Spezifikation unterstützt und wie diese eXtreme Scale zugeordnet werden.

URI des Servicestammelements

Microsoft WCF Data Services definiert gewöhnlich einen Service pro Datenquelle bzw. Entitätsmodell. Der REST-Datenservice von eXtreme Scale definiert einen Service pro definiertem ObjectGrid. Jedes in der eXtreme-Scale-XML-Datei für das Überschreiben von ObjectGrid-Clients definierte ObjectGrid wird automatisch als gesondertes Stammelement des REST-Service bereitgestellt.

Der URI für das Servicestammelement ist:
http://Host:Port/Kontextstammelement/restservice/Gridname
Für diese Formel gilt Folgendes:
  • Das Kontextstammelement wird definiert, wenn Sie die REST-Datenserviceanwendung implementieren und ist vom Anwendungsserver abhängig.
  • Gridname steht für den Namen des ObjectGrid.

Anforderungstypen

In der folgenden Liste sind die Anforderungstypen von Microsoft WCF Data Services beschrieben, die vom REST-Datenservice von eXtreme Scale unterstützt werden. Einzelheiten zu den einzelnen Anforderungstypen, die von WCF Data Services unterstützt werden, finden Sie auf der Webseite "MSDN: Request Types".

Insert-Anforderungen
Mit den folgenden Einschränkungen können Clients Ressourcen mit dem HTTP-Verb POST einfügen:
  • InsertEntity-Anforderung: unterstützt
  • InsertLink-Anforderung: unterstützt
  • InsertMediaResource-Anforderung: aufgrund einer Einschränkung in Bezug auf die Unterstützung von Medienressourcen nicht unterstützt
Weitere Informationen finden Sie auf der Webseite "MSDN: Insert Request Types".
Update-Anforderungen
Mit den folgenden Einschränkungen können Clients Ressourcen mit den HTTP-Verben PUT und MERGE aktualisieren:
  • UpdateEntity-Anforderung: unterstützt
  • UpdateComplexType-Anforderung: aufgrund der eingeschränkten Unterstützung komplexer Typen nicht unterstützt
  • UpdatePrimitiveProperty-Anforderung: unterstützt
  • UpdateValue-Anforderung: unterstützt
  • UpdateLink-Anforderung: unterstützt
  • UpdateMediaResource-Anforderung: aufgrund einer Einschränkung in Bezug auf die Unterstützung von Medienressourcen nicht unterstützt
Weitere Informationen finden Sie auf der Webseite "MSDN: Insert Request types".
Delete-Anforderungen
Mit den folgenden Einschränkungen können Clients Ressourcen mit dem HTTP-Verb DELETE löschen:
  • DeleteEntity-Anforderung: unterstützt
  • DeleteLink-Anforderung: unterstützt
  • DeleteValue-Anforderung: unterstützt
Weitere Informationen finden Sie auf der Webseite "MSDN: Delete Request Types".
Retrieve-Anforderungen
Mit den folgenden Einschränkungen können Clients Ressourcen mit dem HTTP-Verb GET abrufen:
  • RetrieveEntitySet-Anforderung: unterstützt
  • RetrieveEntity-Anforderung: unterstützt
  • RetrieveComplexType-Anforderung: aufgrund der eingeschränkten Unterstützung komplexer Typen nicht unterstützt
  • RetrievePrimitiveProperty-Anforderung: unterstützt
  • RetrieveValue-Anforderung: unterstützt
  • RetrieveServiceMetadata-Anforderung: unterstützt
  • RetrieveServiceDocument-Anforderung: unterstützt
  • RetrieveLink-Anforderung: unterstützt
  • Retrieve-Anforderung mit anpassbarer Feed-Zuordnung: nicht unterstützt
  • RetrieveMediaResource: aufgrund einer Einschränkung in Bezug auf die Unterstützung von Medienressourcen nicht unterstützt
Weitere Informationen finden Sie auf der Webseite "MSDN: Retrieve Request Types".
Optionen für Systemabfragen
Es werden Abfragen unterstützt, die Clients die Identifizierung einer Sammlung von Entitäten oder einer einzelnen Entität ermöglichen. Optionen für die Systemabfrage werden im Datenservice-URI angegeben und mit den folgenden Einschränkungen unterstützt:
  • $expand: unterstützt
  • $filter: unterstützt
  • $orderby: unterstützt
  • $format: nicht unterstützt. Das gültige Format wird im HTTP-Anforderungsheader "Accept" identifiziert.
  • $skip: unterstützt
  • $top: unterstützt
Weitere Informationen finden Sie auf der Webseite "MSDN: System Query Options".
Partitionsweiterleitung

Partitionsweiterleitung basiert auf der Stammentität. Ein Anforderungs-URI leitet eine Stammentität her, wenn der Ressourcenpfad mit einer Stammentität oder mit einer Entität beginnt, die eine direkte oder indirekte Assoziation zur Entität hat. In einer partitionierten Umgebung wird jede Anforderung, die keine Stammentität herleiten kann, zurückgewiesen. Jede Anforderung, die eine Stammentität herleitet, wird an die richtige Partition weitergeleitet.

Weitere Informationen zum Definieren eines Schemas mit Assoziationen und Stammentitäten finden Sie in den Abschnitten Skalierbares Datenmodell in eXtreme Scale und Partitionierung.

Invoke-Anforderung

Invoke-Anforderungen werden nicht unterstützt. Weitere Informationen finden Sie auf der Webseite "MSDN: Invoke Request".

Anforderung für Stapelverarbeitung

Clients können mehrere Änderungssets oder Abfrageoperationen in einer einzigen Anforderung stapeln. Auf diese Weise kann die Anzahl der Umläufe an den Server reduziert werden, und es können mehrere Anforderungen an einer einzigen Transaktion teilnehmen. Weitere Informationen finden Sie auf der Webseite "MSDN: Batch Request".

Getunnelte Anforderungen

Getunnelte Anforderungen werden nicht unterstützt. Weitere Informationen finden Sie auf der Webseite "MSDN: Tunneled Requests".