Today DAB supports /api and /graphql, this introduces /odata.
What is OData?
OData (Open Data Protocol) is an advanced REST-based protocol designed for querying and updating data, allowing for more flexible and granular interaction with data than traditional REST. Unlike standard REST, which typically operates on individual resources and has predefined endpoints, OData supports advanced querying features like filtering, sorting, paging, and data expansion directly through query parameters. OData enables clients to request specific subsets of data using standardized parameters such as $filter, $select, and $orderby, making it particularly useful for data-driven applications. While REST defines basic CRUD operations, OData extends this by adding a structured query syntax, metadata discovery, and model relationships, making it more suited for complex and dynamic data scenarios.
Feature
Description
CRUD Operations
Supports Create, Read, Update, Delete operations on resources, just like standard REST APIs.
Advanced Querying
Provides powerful querying capabilities using $filter, $select, $orderby, and $top, allowing clients to specify exactly what data they need.
Filtering
Allows filtering of results using $filter with logical operators (e.g., eq, gt, lt). Example: ?$filter=age gt 25.
Sorting
Supports sorting results using $orderby. Example: ?$orderby=name desc.
Paging
Provides paging with $top and $skip to limit the number of results and skip specific records. Example: ?$top=10&$skip=20.
Data Expansion
Expands related entities in a single request using $expand. Example: ?$expand=orders to include associated orders with a customer.
Metadata Discovery
Exposes a $metadata endpoint that describes the structure and relationships of the data model, allowing clients to understand the API’s schema without external docs.
Data Relationships
Navigates between related entities seamlessly, enabling efficient querying of relationships such as one-to-many or many-to-many.
Batch Requests
Supports batching multiple requests into a single HTTP request, reducing overhead for applications needing to send multiple queries at once.
Custom Actions/Functions
Allows defining custom server-side actions or functions to extend the functionality of the API beyond basic CRUD operations.
JSON & XML Response
Supports both JSON and XML response formats, giving flexibility in how data is returned to the client.
Count Functionality
Returns the number of items in a collection using $count. Example: ?$count=true to return the total number of records that match the query.
Security & Authorization
Supports OAuth and other authentication mechanisms, and can apply access control policies to specific entities or actions based on user roles and permissions.
Questions
Do we have what we need in our current configuration? Research required.
What is it?
Today DAB supports
/api
and/graphql
, this introduces/odata
.What is OData?
OData (Open Data Protocol) is an advanced REST-based protocol designed for querying and updating data, allowing for more flexible and granular interaction with data than traditional REST. Unlike standard REST, which typically operates on individual resources and has predefined endpoints, OData supports advanced querying features like filtering, sorting, paging, and data expansion directly through query parameters. OData enables clients to request specific subsets of data using standardized parameters such as
$filter
,$select
, and$orderby
, making it particularly useful for data-driven applications. While REST defines basic CRUD operations, OData extends this by adding a structured query syntax, metadata discovery, and model relationships, making it more suited for complex and dynamic data scenarios.$filter
,$select
,$orderby
, and$top
, allowing clients to specify exactly what data they need.$filter
with logical operators (e.g.,eq
,gt
,lt
). Example:?$filter=age gt 25
.$orderby
. Example:?$orderby=name desc
.$top
and$skip
to limit the number of results and skip specific records. Example:?$top=10&$skip=20
.$expand
. Example:?$expand=orders
to include associated orders with a customer.$metadata
endpoint that describes the structure and relationships of the data model, allowing clients to understand the API’s schema without external docs.$count
. Example:?$count=true
to return the total number of records that match the query.Questions
Related issues to close
2004
1566
354