Przejdź do zawartości

Open Data Protocol

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez Addbot (dyskusja | edycje) o 05:00, 17 mar 2013. Może się ona znacząco różnić od aktualnej wersji.

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 wkorzystywane podczas reprezentacji XML to:

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 reprzentowany przez Atrom Entry Document (dla reprezentacji XML) lub obiekt JSON (dla reprezentacji JSON)
  • Feed (źródło) - reprezentacji kolecji
  • 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 trzecz zasadniczych części:

  1. Adres główny serwisu - np. http://services.odata.org/OData/OData.svc
  2. Ścieżka do zasobu - np. Categories(1)/Products
  3. 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 wg nazwy. Z tej kolekcji zostaną wybrane dwa ptodukty: 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 wg wybranej właściwości: $orderby=Name.
rosnąco - domyślnie sortowanie odbywą 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 dla wpisy
  • $filter (filtrowanie) - operator umożliwiający filtorwanie wyników zglę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 operatry 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

Biblioteki klienckie

  • JavaScript
  • PHP
  • Java
  • Ruby
  • Objective-C
  • Microsoft .NET 3.5 SP1
  • Microsoft .NET 4.0
  • Joomla
  • Drupal

Biblioteki serwerowe

  • Microsoft .NET 3.5 SP1
  • Microsoft .NET 4.0
  • Java
  • Ruby on Rails
  • MySQL

Wybrane aplikacje udostępniające dane w postaci OData

  • SharePoint 2010
  • IBM WebSphere
  • Microsoft SQL Azure
  • Windows Azure Table Storage
  • Microsoft Dynamics CRM 2011
  • GeoRest
  • SDL Tridion 2011

Wybrane serwisy OData

Zobacz też

  • Strona główna protokołu OData (biblioteki kliencki i serwerowe) - http://www.odata.org
  • Portal MSDN.pl (seria artykułów OData):
Część 1 - http://msdn.microsoft.com/pl-pl/library/gg455971
Część 2 - http://msdn.microsoft.com/pl-pl/library/odata-nowy-standard-udostepniania-i-korzystania-z-danych-cz-2a oraz http://msdn.microsoft.com/pl-pl/library/odata-nowy-standard-udostepniania-i-korzystania-z-danych-cz-2b

Bibliografia

  1. Protocol documentation - http://www.odata.org/developers/protocols