Program guide > Access data with the REST data service



Operations with the REST data service

After you start the eXtreme Scale REST data service, you can use any HTTP client to interact with it. A Web browser, PHP client, Java™ client or WCF Data Services client can be used to issue any of the supported request operations.

The REST service implements a subset of the Microsoft Atom Publishing Protocol: Data Services URI and Payload Extensions specification, v1.0 which is part of OData protocol. This topic describes which of the features of the specification are supported and how they are mapped to eXtreme Scale.


Service root URI

Microsoft WCF Data Services typically defines a service per data source or entity model. The eXtreme Scale REST data service defines a service per defined ObjectGrid. Each ObjectGrid that is defined in the eXtreme Scale ObjectGrid client override XML file is automatically exposed as a separate REST service root.

The URI for the service root is:

http://host:port/contextroot/restservice/gridname

Where:


Request types

The following list describes the Microsoft WCF Data Services request types which the eXtreme Scale REST data service supports. For details about each request type that WCF Data Services supports, see: MSDN: Request Types.

Insert request types

Clients can insert resources using the POST HTTP verb with the following limitations:

  • InsertEntity Request: Supported.

  • InsertLink request: Supported.

  • InsertMediaResource request: Not supported due to media resource support restriction.

For additional information, see: MSDN: Insert Request Types.

Update request types

Clients can update resources using the PUT and MERGE HTTP verbs with the following limitations:

  • UpdateEntity Request: Supported.

  • UpdateComplexType Request: Not Supported due to complex type restriction.

  • UpdatePrimitiveProperty Request: Supported.

  • UpdateValue Request: Supported.

  • UpdateLink Request: Supported.

  • UpdateMediaResource Request: Not supported due to media resource support restriction.

For additional information, see: MSDN: Insert Request types.

Delete request types

Clients can delete resources using the DELETE HTTP verb with the following limitations:

  • DeleteEntity Request: Supported.

  • DeleteLink Request: Supported.

  • DeleteValue request: Supported.

For additional information, see: MSDN: Delete Request Types.

Retrieve request types

Clients can retrieve resources using the GET HTTP verb with the following limitations:

  • RetrieveEntitySet Request: Supported.

  • RetrieveEntity Request: Supported.

  • RetrieveComplexType Request: Not supported due to complex type restriction.

  • RetrievePrimitiveProperty Request: Supported.

  • RetrieveValue Request: Supported.

  • RetrieveServiceMetadata Request: Supported.

  • RetrieveServiceDocument Request: Supported.

  • RetrieveLink Request: Supported.

  • Retrieve Request Containing a Customizable Feed Mapping: Not supported

  • RetrieveMediaResource: Not supported due to media resource restriction.

For additional information, see: MSDN: Retrieve Request Types.

System query options

Queries are supported which allow clients to identify a collection of entities or a single entity. System query options are specified in a data service URI and are supported with the following limitations:

  • $expand: Supported

  • $filter: Supported.

  • $orderby: Supported.

  • $format: Not supported. The acceptable format is identified in the HTTP Accept request header.

  • $skip: Supported

  • $top: Supported

For additional information, see: MSDN: System Query Options.

Partition routing

Partition routing is based on the root entity. A request URI infers a root entity if its resource path starts with a root entity or with an entity that has a direct or indirect association to the entity. In a partitioned environment, any request that cannot infer a root entity will be rejected. Any request that infers a root entity will be routed to the correct partition.

For additional information on defining a schema with associations and root entities, see Scalable data model in eXtreme Scale and Partitioning.


Invoke request

Invoke requests are not supported. For additional information, see MSDN: Invoke Request.


Batch request

Clients can batch multiple Change Sets or Query Operations within a single request. This can reduce the number of round trips to the server and allows multiple requests to participate in a single transaction. For additional information, see MSDN: Batch Request.


Tunneled requests

Tunneled requests are not supported. For additional information, see MSDN: Tunneled Requests.


Parent topic:

Access data with the REST data service

Related reference

Request protocols for the REST data service

Optimistic concurrency