REST-ChristianS

Download Report

Transcript REST-ChristianS

Christian Ståhl
A Beginner's Guide to
SharePoint 2013 REST API
[Rest/Odata/Json]
Christian Ståhl
•
•
•
•
Blog: chrisstahl.wordpress.com
Twitter: @Cstahl
SharePoint MVP 2011-2014
Senior consultant & lead designer
Humandata
• Fokus branding & front end utveckling
• Utbildar bl a på LabCenter och Hermods
REST
• REST – Representational State Transfer
• Används för att organisera information mellan två system, typiskt webbserver och
klient
• REST är en klient / server arkitektur
• Uppfanns år 2000 av Roy Fielding
REST – Termer att ha koll på
• Universellt
• JS, C#, JAVA, PHP m.m.
• iOS, Android, Windows m.m
•
•
•
•
Formatet (resultatet) är XML eller JSON
Använder HTTP och stödjer metoderna CRUD (GPDMP)
Syntaxen för frågan, via HTTP heter OData
Bygger man en webbtjänst och använder REST kallas webbtjänsten
RESTful
Vad är en Webbtjänst / Webservice?
• En metod för kommunikation mellan t ex två enheter (server-client)
över internet (www)
• Kallas också Machine-to-Machine
• Två protokoll (arkitekturer för webbtjänster) finns
• REST
• SOAP
REST
• Kommunikation genom HTTP (mekanism för transport)
REST
• Om du vill bygga en APP/Webpart som rullar upp dokument från ett
bibliotek
• Fråga – Ställ frågan direkt i webbläsarens adressfält
• Svar – rådata serveras direkt i webbläsaren
• Presentation – Du behandlar och presenterar resultatet för användaren
REST
• Fråga (Jag vill ha..)
• 5 Senaste dokumenten
• Bara viss typ av dokument (t ex avtal)
• Bara dokument som skapats denna vecka
REST
• Frågan {OdataQuery} - görs med hjälp av query parameters
/_api/web/lists/getbytitle('Documents')/items
• $select=Title
• $top=5
• $orderby=Title desc
/_api/web/lists/getbytitle('Documents')/items?$select=Title&$top=5&$orderby=Title desc
REST
• Svar
• Ok säger SharePoint, genom dess REST API, och ger dig resultatet i rådata direkt i
webbläsaren
REST
• Svar
• Javisst säger SharePoint genom dess REST api
REST
• Presentation
• XML/JSON är formatet och JavaScript/HTML/CSS är språket för UI och funktionalitet
REST
Gör en beställning
REST
Resultatet levereras
REST
Bygg ett gränssnitt
REST
Done!
REST
Klienten kommunicerar med servern
SharePoint & REST
• REST kan implementeras i allt från en innehållsredigerare, en
SharePoint sida, en web part eller som en APP
• Du kan använda NAPA, Visual Studio, SharePoint Designer eller t ex
Notepad.
• REST med JS är enklare jämfört med XSLT och samtidigt kraftfullare
SharePoint & REST
• REST i SharePoint 2013 låter dig arbeta med:
•
•
•
•
•
Listor
List Items
Webs/Sites
Navigation
UserProfiles (GetMyProperties) – men bara läsa, använd SPServices för
updates
• Sök
• Användare/grupper
SharePoint & REST
• SharePoint REST referens?
• http://msdn.microsoft.com/enus/library/office/jj860569(v=office.15).aspx#Reference
SharePoint & REST jämfört med CSOM
• REST är ett API i SharePoint men CSOM (JS object model) finns
också som ett alternativt API:
• REST
• Många open source bibliotek (jQuery, knockout m.fl)
• Odata frågor
• CSOM
• Stöd för manage metadata taxanomi och workflows
• SharePoint specifikt med CAML frågor
• Framtiden osäker för CSOM då SP går mer mot en tjänst i molnet än som produkt
SharePoint & REST jämfört med CSOM
• Inget av dessa är rätt eller fel, det beror på situationen och sammanhanget
• Se det som två olika verktyg i lådan
• REST och CSOM kan samexistera i din APP
SharePoint & REST
• Anta att du vill skapa en APP som visar alla dokument i ett visst
dokumentbibliotek
• /Shared Documents/Forms/AllItems.aspx
• REST endpoint blir då:
• /_api/web/lists/getbytitle('Documents')/items?$select=Title
• Du får tillbaka den data du efterfrågat i XML
• Nästa steg är att transformera resultatet till något mer läsbart med hjälp av
JavaScript (Ajax) i formatet JSON
SharePoint & REST
Ajax & JSON
• Ajax
• En JS term för att asynkront uppdatera data
• Snabb kommunikation med servern utan postbacks
• JSON
• Är precis som XML ett Markup Language, men enklare att hantera i JS än
XML
• Är också snabbare än XML
Verktyg
• Google Chrome Extensions
• DHC – REST HTTP API Client
• Advanced REST client
• REST console
• Fiddler
• SharePoint Client Browser
• SPO APPs:
• OdataQueryBuilder
• _api JSON Builder
REST
• Eftersom REST via JSON är JS kan du också använda andra JS
baserade ramverk för än mer kraftfulla applikationer:
•
•
•
•
Moment.js (date parsing)
Knockout / Angular (databinding)
DataTables (tabeller)
SpServices (färdiga templates)
• och många fler..
REST – Beyond SharePoint
• Du kan också arbeta med information från externa källor
• 1000 tals REST tjänster finns…
•
•
•
•
•
•
•
•
•
•
Twitter
Spotify
Netflix
FlickR
Foursquare
Eniro
Booli
Yammer
Bing & Google Maps
FlightLookup
REST – Externa källor (Twitter)
REST – Externa källor (Spotify)
DEMO!