+ All Categories
Home > Technology > SharePoint 2013 Rest & ODATA

SharePoint 2013 Rest & ODATA

Date post: 05-Dec-2014
Category:
Upload: joerg-krause
View: 2,442 times
Download: 4 times
Share this document with a friend
Description:
Die Grundlagen zu SharePoint und der Nutzung der REST Dienste in SharePoint 2013.
34
7.-8. März 2013, Rosenheim SharePoint 2013 REST/ODATA Einordnung in die Welt der Programmiermodelle für SharePoint 2013
Transcript
Page 1: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

SharePoint 2013 REST/ODATA

Einordnung in die Welt der Programmiermodelle für

SharePoint 2013

Page 2: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Vorstellung• Consultant & Trainer• SharePoint, SQL Server• ASP.NET/MVC .NET-Entwicklung

• Autor• texxtoor, ehem. Hanser, Apress, S&S

• Siehe auch…• www.joergkrause.de• www.texxtoor.com

Page 3: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

PRINZIPIENWas und wie kann alles programmiert werden?

Page 4: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Was ist neu in SP 2013?

• REST Endpunkte• Cloud Apps• Diverse neue API für Client und Server• Remote Event Receivers• Workflow 4.0• Managed Navigation• Cross Site Publishing• EDiscovery• Aktuelles .NET Framework 4.5

Page 5: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Die richtige API finden

• Auswahl nach1. Anwendungsziel

Unterstützt meine Wahl das Ziel optimal und nutze ich die gelieferte Infrastruktur maximal aus?

2. KenntnisseKann ich meine Kenntnisse optimal einsetzen und erreiche ich maximale Produktivität

Page 6: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Applikationsarten = API-TypenMit folgender API nutzbar: Server Client REST

WebPart X

Silverlight-Applikation X

ASP.NET, ASP.NET MVC o.ä. in einem iFrame in einer Website

X X X

JavaScript-Anwendung X X

SharePoint-Applikationsseite (Layout-Page) X

.NET im Client-Computer (WinForms, WPF, Console)

X X

Powershell-Script auf Server X

Powershell-Script auf Client X

Timer-Job im SharePoint Server X

Page 7: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

API "Big Picture"

Server Object Model

PowerShell Script Timer Job

SilverlightClient API

Web Parts

ASP.NET SP 2013 Apps

HTML/JavaScript

Office App

REST/ODATA Services

JavaScriptAPI

MobileSilverlight API

.NET Client Object Model

iOS/Android Apps

LAMP Web Applikation

Windows Phone

WinForms, WPF

Page 8: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Mächtigkeit versus Flexibilität

Server APIAlle Bausteine programmierbarLINQ to SharePoint-Abfragen

Client Side Object Model (CSOM)REST/ODATA

Mäc

htige

rFlexibler

Page 9: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Server API

• Am leistungsfähigsten = Immer gut?– Nein, weil remote manchmal einfacher ist:• Runterladen der Logik zum Client (down)• JavaScript im Client, Silverlight, WinForms/WPF • Hochladen der Logik in die Cloud (up)• Server hosted, ASP.NET, Azure

– Immer remote? Nein, weil komplexer durch Authentifizierung usw.

Page 10: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Client Side Object Model

• Silverlight– Webpart, Web Applikation

• .NET– Winforms, WPF, Azure Web Role, ASP.NET auf

externem Server• Mobile– Windows Phone Silverlight

Page 11: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

JavaScript Object Model

• Teil des Client Side Object Model• Geräte- und technologieunabhängig• *.js-Dateien auf jeder Maschine

Page 12: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Wie hängt das zusammen?

• In 2010: – REST _vti_bin/listdata.svc– CSOM _vti_bin/client.svc

• In 2013: – REST kompatibel wie bisher: listdata.svc– CSOM hat einen weiteren Odata Endpunkt: • _vti_bin/client.svc/web• _api/web als allgemeiner Alias

Page 13: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Vor-/Nachteile

• client.svc ist vollständiger als listdata.svc• client.svc erzeugt derzeit noch keine

Metadaten, sodass diverse Tools nicht gehen, z.B. LinqPad

Page 14: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

REST / ODATASchwerpunktthema

Page 15: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Warum nun REST?

• Weite Verbreitung• Gut dokumentiert• Einfacher als SOAP• Perfekt mit JavaScript und (ggf.) jQuery• JSON oder ATOM (XML)

Page 16: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

REST/ODATA

• Grundlagen siehe www.odata.org• Wenn JavaScript nicht verfügbar oder nicht

passend• Clients anderer Plattformen, z.B. iOS, Android,

Java o.ä.

Page 17: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

• REST = Representational State Transfer– Kein Standard, sondern Architekturstil– Basiert aber auf Standards:• HTTP, URI, XML/HTML, MIME

– Merkmale:• Skalierbar• Allgemeingültig• Erweiterbar

Was ist REST?

Page 18: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

REST HTTP Client

(z.B. Browser)Web Server Datenbank

SharePoint

<Where> <Eq> <Field Name="ISBN"> <Value>346</Value> </Eq></Where>

INSERTINTO orders

UPDATE ordersWHERE id=2605

GET/book?ISBN=346

POST/order

301 Location:/order/2605

PUT/order/2605

Page 19: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

REST und ODATA

• ODATA = Data Access API• Standardisierte CRUD-Operatoren

• ODATA beschreibt Entity Data Model

Page 20: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

ODATA KonzepteODATA Ressource In EDM beschrieben als

Collection Set aus Entitäten

Entry Entitäten Typ

Property Primitive oder komplexe Typ-Eigenschaft

Complex Type Komplexer Typ

Link Navigations-Eigenschaft innerhalb des Typs

Operation Funktion

Page 21: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

• GET– Ressource laden– Ohne Seiteneffekte, Sicher– Unterstützt Cache

• POST– Neue Ressource erzeugen– Keine 100% klare Spezifikation in HTTP, Unsicher

• PUT– Aktualisierung einer Ressource– Client muss exaktes Ziel kennen– Idempotent gleich Aktion führt immer zum selben Ergebnis

• DELETE– Entfernt eine Ressource– Idempotent gleich Aktion führt immer zum selben Ergebnis

ODATA Mapping

Page 22: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

• Methoden werden gemappt in – Navigations-Operationen

web.getByTitle GET

– Service-Operationen

POST, PUT, MERGE, DELETE

ODATA Mapping

Page 23: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Beispiele

• http://site url/_api/web/…• _api/web/lists• _api/web/lists/listname• _api/web/lists(guid)• _api/web/lists/getByTitle('Name')

Page 24: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

REST (JQuery)

jQuery.ajax({ url: "http://site url/_api/web/lists”, type: "GET", headers: { "ACCEPT": "application/json;odata=verbose",

"Authorization": "Bearer " + accessToken }, })

Page 25: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

REST (cross-domain lib)

var executor = new SP.RequestExecutor(appweburl); executor.executeAsync( { url: appweburl + "/_api/SP.AppContextSite(@target)/web/lists?@target='" + hostweburl + "'", method: "GET", headers: { "Accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler } );

Page 26: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

REST (C#)

HttpWebRequest endpointRequest = (HttpWebRequest)HttpWebRequest.Create(sharepointUrl.ToString() + "/_api/web/lists");

endpointRequest.Method = "GET"; endpointRequest.Accept = "application/json;odata=verbose"; endpointRequest.Headers.Add("Authorization", "Bearer " + accessToken); HttpWebResponse endpointResponse =

(HttpWebResponse)endpointRequest.GetResponse();

Page 27: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

OAuth

• Offenes Protokoll für– Authentifizierung– Autorisierung

• Basiert auf TLS – Transport Layer Security– Im Wesentlichen: HTTPS

Page 28: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

OAuth in SP 2013

• OAuth erlaubt es einem Benutzer, einen Service Provider zu autorisieren, ein Sicherheitstoken (Hash) herauszugeben, anstatt Benutzername und Kennwort

• Der Service Provider ist hier der Secure Token Service in SharePoint 2013

Page 29: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

OAuth in SP 2013

• Token erlaubt Zugriff auf– Bestimmte Site– Bestimmte Ressourcen der Site– Für eine bestimmte Zeitdauer

• Damit wird dritten Instanzen der Zugriff ebenso erlaubt, wenn diese den Token benutzen

• Diese „dritte Instanz“ ist z.B. eine App

Page 30: SharePoint 2013 Rest & ODATA

7.-8. März 2013, RosenheimAblauf

Page 31: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

BEISPIELE

Page 32: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Veranstalter:

Beispiele

1. REST/ODATA – JQuery-Applikation2. CSOM – Client Object Model3. Server API – Console4. Server API – LayoutPage in SP5. Client Object Model als App

Page 33: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

FRAGEN?

Page 34: SharePoint 2013 Rest & ODATA

7.-8. März 2013, Rosenheim

Vielen Dank!Jörg Krause

www.joergkrause.de


Recommended