====== 2.1 OData Grundlagen ======
OData((OData - Open Data Protocol: https://www.odata.org/)) (Open Data Protocol) ist ein REST((Representational State Transfer: https://de.wikipedia.org/wiki/Representational_State_Transfer))-basierter Standard für Datenabfragen, entwickelt von OASIS((OASIS Open: https://www.oasis-open.org/)).
===== Warum OData? =====
* Nativer Support in [[.:anwender:excel:start|Excel]], [[.:anwender:powerbi:start|Power BI]], [[.:anwender:access:start|Access]]
* Standardisierte Query-Syntax((OData Query Options: https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html))
* Automatische Metadaten (Schema) im CSDL((Common Schema Definition Language: https://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html)) Format
===== OData Version =====
Der Data Gateway unterstützt **OData v4.01**((OData Version 4.01 Specification: https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html)).
===== Service Document =====
GET /odata/demo
Listet alle verfügbaren Entity Sets (Tabellen/Views).
===== Metadata =====
GET /odata/demo/$metadata
Liefert das Schema im EDMX((Entity Data Model XML: https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html))-Format.
===== Entity Set abfragen =====
GET /odata/demo/Customers
GET /odata/demo/Customers?$top=10
GET /odata/demo/Customers?$filter=Country eq 'Germany'
===== Query Options =====
^ Option ^ Beschreibung ^ Beispiel ^
| $filter | Filtert Ergebnisse | $filter=Price gt 100 |
| $select | Wählt Spalten | $select=Name,Price |
| $orderby | Sortiert Ergebnisse | $orderby=Name desc |
| $top | Limitiert Anzahl | $top=10 |
| $skip | Überspringt Einträge | $skip=20 |
| $count | Zählt Ergebnisse | $count=true |
| $expand | Lädt Beziehungen | $expand=Orders |
===== Weiterführend =====
* [[.:entwickler:odata:filter|Filter-Syntax]] für komplexe Abfragen
* [[.:entwickler:odata:paging|Paging]] für große Datenmengen
===== Quellen =====
* [[https://www.odata.org/|OData.org - Offizielle Website]]
* [[https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html|OData v4.01 Spezifikation (OASIS)]]
* [[https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html|OData URL Conventions]]