Open Data Protocol
Open Data Protocol (OData) – protokół sieciowy służący do pobierania oraz aktualizowania danych stworzony przez firmę Microsoft. Oparty jest na standardowych protokołach sieciowych takich jak HTTP i Atom, dodając do nich możliwość wykonywania zapytań i zwracania podzbiorów danych w formacie XML lub JSON. Protokół oparty jest na licencji Microsoft Open Specification Promise.
Przestrzenie nazw XML
Przestrzenie nazw wykorzystywane podczas reprezentacji XML to:
- Data Namespace – przestrzeń wykorzystywana do reprezentacji danych
- Metadata Namespace – przestrzeń nazw wykorzystywana do reprezentacji metadanych
Pojęcia podstawowe
- Collection (kolekcja) – zasób przechowujące zbiór elementów Member Resource
- Entity Data Model (Model danych) – abstrakcyjny model danych wykorzystywany przez serwis OData
- Entry (wpis) – element kolekcji reprezentowany przez Atom Entry Document (dla reprezentacji XML) lub obiekt JSON (dla reprezentacji JSON)
- Feed (źródło) – reprezentacji kolekcji
- Link (relacja) – określa relację pomiędzy dwoma wpisami
- Property (właściwość) – element reprezentujący część wpisu
- Resource (zasób) – dostępny poprzez sieć obiekt danych
Konwencje URI
Adres URI serwisów OData składają się z trzech zasadniczych części:
- Adres główny serwisu – np. http://services.odata.org/OData/OData.svc
- Ścieżka do zasobu – np. Categories(1)/Products
- Operatory zapytań – np. top=2&$orderby=Name
Złożenie powyższych trzech elementów da dostęp do kolekcji Produktów należących do jednej kategorii, posortowanej według nazwy. Z tej kolekcji zostaną wybrane dwa produkty: http://services.odata.org/OData/OData.svc/Categories(1)/Products?$top=2&$orderby=Name
Opcje zapytania należy poprzedzić symbolem „?”, a wszystkie operacje zapytań poprzedzone są symbolem „$”.
Opcje zapytań to:
- $orderby (sortowanie) – sortowanie według wybranej właściwości: $orderby=Name.
- rosnąco – domyślnie sortowanie odbywa się w sposób rosnący. Zapisy: $order=Name oraz $orderby=Name asc są sobie równoznaczne
- malejąco – wykonanie sortowania malejącego wykonuje się poprzez dodanie słowa kluczowego desc: $orderby=Name desc
- $top – operator zwracający podzbiór z kolekcji wyników w zależności od przekazanego parametru np. $top=2 zwróci dwa wpisy
- $filter (filtrowanie) – operator umożliwiający filtrowanie wyników względem zadanego kryterium np. $filter=Name eq 'Cranberry Juice’ zwróci wpisy produktów, dla których właściwość Name zawiera wartość Cranberry Juice
- Protokół OData dostarcza operatory filtrowania w trzech grupach: Logiczne, Arytmetyczne, Grupujące.
- $format – operator informujący serwis w jakim formacie mają zostać zwrócone wyniki:
- Atom – http://services.odata.org/OData/OData.svc/Categories(1)/Products?$top=2&$orderby=Name&$format=atom
- JSON – http://services.odata.org/OData/OData.svc/Categories(1)/Products?$top=2&$orderby=Name&$format=json
- $select (projekcja) – w celu ograniczenia liczby wyświetlanych właściwości dla encji możliwe jest zastosowanie operatora $select oraz przekazanie nazwy właściwości jako parametrów: http://services.odata.org/OData/OData.svc/Categories(1)/Products?$top=2&$orderby=Name&$select=Name,Price
Bibliografia
- Protocol documentation – https://www.odata.org/developers/protocols
Linki zewnętrzne
- Strona główna protokołu OData (biblioteki kliencki i serwerowe) – http://www.odata.org
- Portal MSDN.pl (seria artykułów OData):
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.