1.7.2 OData 3.0 Version-Specific Summary

Following is a summary of the protocol constructs that are defined in this document that apply to OData 3.0. This section is structured by protocol feature, which is briefly described, and lists the sections that include content that is specific to that feature. Any constructs or semantics that exist only in OData 3.0 are explicitly denoted in that content.

Collection properties: A collection property is a property that represents a non-nullable, unordered, homogenous set of EDMSimpleType or ComplexType, as specified in [MC-CSDL].

  • 2.2.1 Abstract Data Model

  • 2.2.3.1 URI Syntax

  • 2.2.3.4 Resource Path: Construction Rules

  • 2.2.3.6.1 System Query Options

  • 2.2.6.2.2 Entity Type (as an Atom Entry Element)

  • 2.2.6.2.9 Collection Property

  • 2.2.6.2.9.1 Collection Property of Complex Type

  • 2.2.6.2.9.2 Collection of EDMSimpleType

  • 2.2.6.3.13 Collection Property

  • 2.2.6.2.9.1 Collection Property of Complex Type

  • 2.2.6.2.9.2 Collection of EDMSimpleType

  • 2.2.7.2.6 RetrieveCollectionProperty Request

  • 2.2.7.3.4 UpdateCollectionProperty Request

Geospatial properties: A geospatial property is a property of a geospatial EDMSimpleType, as specified in [MC-CSDL] (section 2.2.1).

Relationship links: Relationship links can be used to represent the association between related entities.

  • 2.2.6.2.1.1 InlineCount Representation (for Collections of Entities)

  • 2.2.6.2.2 Entity Type (as an Atom Entry Element)

  • 2.2.6.2.4 Navigation Property

  • 2.2.6.2.6.1 Inline Representation

  • 2.2.6.3.2.1 InlineCount Representation (for collections of entities)

  • 2.2.6.3.3 Entity Type (as a JSON object)

  • 2.2.6.3.6 Navigation Property

  • 2.2.6.3.9 Deferred Content

  • 2.2.6.3.9.1 Inline Representation

  • 2.2.7.1.1.1 Examples

PATCH method: The HTTP PATCH method is defined by [RFC5789] and defines behavior that is equivalent to the HTTP MERGE method (section 2.2.4.1) that is defined in this specification.

  • 2.2.3.7.2 Conceptual Schema Definition Language Document for Data Services

  • 2.2.4.1 PATCH/MERGE

  • 2.2.5.5 If-Match

  • 2.2.5.6 If-None-Match

  • 2.2.5.8 X-HTTP-Method

  • 2.2.7.3.1 UpdateEntity Request

  • 2.2.7.3.2 UpdateComplexType Request

  • 2.2.7.3.3 UpdatePrimitiveProperty Request

  • 2.2.7.3.4 UpdateCollectionProperty Request

  • 2.2.7.3.5 UpdateValue Request

  • 2.2.7.3.6 UpdateLink Request

  • 2.2.7.3.7 UpdateMediaResource Request

  • 3.2.5.2 Common Rules for Executing Received Insert, Update, or Delete Data Service Requests

  • 3.2.5.5 Executing a Received Update Request

Prefer header: The prefer header allows a client to request that the server include a representation of the resource that was updated during a HTTP POST, MERGE, PUT, or PATCH operation in the body of the response.

  • 2.2.5.9 Prefer

  • 2.2.5.10 Preference-Applied

  • 2.2.5.11 DataServiceId

  • 2.2.7.1.1 InsertEntity Request

  • 2.2.7.1.2 InsertLink Request

  • 2.2.7.1.3 InsertMediaResource Request

  • 2.2.7.3.1 UpdateEntity Request

  • 2.2.7.3.2 UpdateComplexType Request

  • 2.2.7.3.3 UpdatePrimitiveProperty Request

  • 2.2.7.3.4 UpdateCollectionProperty Request

  • 2.2.7.3.5 UpdateValue Request

  • 2.2.7.3.6 UpdateLink Request

  • 2.2.7.3.7 UpdateMediaResource Request

Named resource streams: Named resource streams extend an EntityType definition to include an optional set of named streams (or byte arrays).

  • 2.2.1 Abstract Data Model

  • 2.2.3.1 URI Syntax

  • 2.2.3.3 Resource Path (resourcePath)

  • 2.2.3.4 Resource Path: Construction Rules

  • 2.2.3.5 Resource Path: Semantics

  • 2.2.3.6.1.11 Select System Query Option ($select)

  • 2.2.3.6.1.12 System Query Option: Additional Construction Rules

  • 2.2.3.7.2 Conceptual Schema Definition Language Document for Data Services

  • 2.2.3.7.2.1 Conceptual Schema Definition Language Document Extensions for Customizable Feeds

  • 2.2.6.2.10 Named Resource Streams

  • 2.2.6.3.14 Named Resource Streams

Any/All method support: This feature adds support for the Any method and for the All method.

  • 2.2.3.6.1.1 Common Expression Syntax

  • 2.2.3.6.1.1.1 Expression Construction and Evaluation Rules

  • 2.2.3.6.1.4 Filter System Query Option ($filter)

Derived types: This feature adds support for indicating a more specific subtype in various contexts, such as navigation and filtering. Derived types also allow references to members of a given subtype.

  • 2.2.3 URI Format: Resource Addressing Rules

  • 2.2.3.1 URI Syntax

  • 2.2.3.5 Resource Path: Semantics

  • 2.2.3.6.1 System Query Options

  • 2.2.3.6.1.1 Common Expression Syntax

  • 2.2.3.6.1.3 Expand System Query Option ($expand)

  • 2.2.3.6.1.4 Filter System Query Option ($filter)

  • 2.2.3.6.1.6 OrderBy System Query Option ($orderby)

  • 2.2.3.6.1.11 Select System Query Option ($select)

  • 2.2.6.2.11 Links and Subtypes

Actions and functions: Actions provide a way to define and invoke side effecting operations that are associated with an entity or a collection of entities. Functions provide a way to define and invoke operations that are free of side effects.

  • 2.2.1.3 Actions

  • 2.2.1.3.1 Action Metadata URL

  • 2.2.1.4 Functions

  • 2.2.1.4.1 Function Metadata URL

  • 2.2.1.5 Service Operations

  • 2.2.3.1 URI Syntax

  • 2.2.3.4 Resource Path: Construction Rules

  • 2.2.3.5 Resource Path: Semantics

  • 2.2.3.6.1.1 Common Expression Syntax

  • 2.2.3.6.1.1.1 Expression Construction and Evaluation Rules

  • 2.2.3.6.1.3 Expand System Query Option ($expand)

  • 2.2.3.6.1.11 Select System Query Option ($select)

  • 2.2.3.6.4 Function Parameters

  • 2.2.3.6.5 Action Parameters

  • 2.2.3.7.2 Conceptual Schema Definition Language Document for Data Services

  • 2.2.5.5 If-Match

  • 2.2.6.2.1.2 Entity Set (as an Atom Feed Element) with Actions

  • 2.2.6.2.1.3 Entity Set (as an Atom Feed Element) with Functions

  • 2.2.6.2.2.2 Entity Type (as an Atom Entry Element) with Actions

  • 2.2.6.2.2.3 Entity Type (as an Atom Entry Element) with Functions

  • 2.2.6.3.2.2 Entity Set (as a JSON array) with Actions

  • 2.2.6.3.2.3 Entity Set (as a JSON array) with Functions

  • 2.2.6.3.3.1 Entity Type (as a JSON Object) with Actions

  • 2.2.6.3.3.2 Entity Type (as a JSON Object) with Functions

  • 2.2.7.5.1 Invoke Action Request

  • 2.2.7.5.2 Invoke Function Request

  • 3.1.4.8 Request to Invoke an Action

  • 3.1.4.9 Request to Invoke a Function

  • 3.2.5.9 Executing a Received Invoke Action Request

  • 3.2.5.10 Executing a Received Invoke Function Request

Containment: Containment provides a way to model situations in which an EntityType is contained by another EntityType. This implies constraints on how to access, create, and update the contained EntityType.

New JSON format: A new JSON format provides a preferred JSON with optional metadata that more closely resembles custom JSON formats.