620 likes | 739 Vues
Speaking OData to SharePoint 2010 in a RESTful manner. Michaël Hompus | Principal Developer | Winvision. Speaking OData to SharePoint 2010 in a RESTful manner. Michaël Hompus. Principal Developer michael.hompus@winvision.nl http://blog.hompus.nl @eNeRGy164. REST. OData.
E N D
Speaking OData to SharePoint 2010in a RESTful manner Michaël Hompus | Principal Developer | Winvision
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus Principal Developer michael.hompus@winvision.nl http://blog.hompus.nl @eNeRGy164
REST • OData • SharePoint 2010
REST • OData • SharePoint 2010
“ Wikipedia Representational State Transfer (REST) is een software-architectuur voor gedistribueerde mediasystemen zoals het World wide web. ”
Client-server • Stateless • Cachable Uniform interface * Code on demand Layered system
Identificatie van resources Elke resource binnen de applicatie heeft zijn eigen adres, bijv. een unieke URL. Een resource heeft een representatie, bijv. in de vorm van HTML, XML of JSON. Manipulatie van resources d.m.v. de representatie Met behulp van resource en bijbehorende metadata kan een resource gewijzigd of verwijderd worden. Bijvoorbeeld door gebruik te maken van HTTP methods zoals GET, PUT, POST en DELETE. Zelf beschrijvende berichten Door middel van mime-types wordt doorgegeven hoe de client de informatie kan verwerken, ook de cachebaarheid wordt meegegeven. “Hypermedia” als motor van “state” Om van state te veranderen kan de representatie van een resource bijvoorbeeld hyperlinks bevatten. Zo’n link kan wijzen naar gerelateerde informatie. Uniform interface
* Code on demand
“ OData.org The Open Data Protocol (OData) is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. ”
Open Data Protocol (v2.0) • Open Data Protocol (v1.0) AtomPub [RFC5023] JSON [RFC4627] XML, etc HTTP(S) [RFC2616] TCP [RFC793]
OData feed AtomPub feed
Adressering http://services.odata.org/OData/OData.svc http://services.odata.org/OData/OData.svc/$metadata http://services.odata.org/OData/OData.svc/Categories http://services.odata.org/OData/OData.svc/Categories/$count http://services.odata.org/OData/OData.svc/Categories(1) http://services.odata.org/OData/OData.svc/Categories(1)/Name http://services.odata.org/OData/OData.svc/Categories(1)/Name/$value http://services.odata.org/OData/OData.svc/Categories(1)/Products http://services.odata.org/OData/OData.svc/Categories(1)/Products(1)
Query operaties …/OData.svc/Products?$orderby=Rating …/OData.svc/Products?$orderby=Rating asc …/OData.svc/Products?$orderby=Rating,Category/Name desc …/OData.svc/Products?$top=5 …/OData.svc/Products?$skip=5 …/OData.svc/Products?$skip=2&$top=2&$orderby=Rating …/OData.svc/Products?$select=Price,Name …/OData.svc/Categories?$expand=Products
Atom (XML) JSON
http://localhost/_vti_bin/ListData.svc/Documents(1)/CreatedByhttp://localhost/_vti_bin/ListData.svc/Documents(1)/CreatedBy
.../_vti_bin/ExcelRest.aspx/Shared Documents/Gears Sales History.xlsx/Model
.../Gears Sales History.xlsx/Model/Tables/Table('Table2')?$format=atom
.../Gears Sales History.xlsx/Model/Tables/Table('Table2')?$format=html
.../Gears Sales History.xlsx/Model/Charts('Chart 3')?$format=image