[email protected](425) 522-3727
Enterprise Content Management and Business Process Automation Software as a Service
Understanding and Programmingthe SharePoint REST API
About Chris Beckett
24+10MCMMCT
MCSEMCPD
EntrepreneurSolutions ArchitectSystems EngineerTrainer and Author
@sharepointbits
blog.sharepointbits.com
Agenda
Introduction toSharePoint
Web Services
Working withREST and
ODATAServices
Programmingwith theREST API
Agenda
Introduction toSharePoint
Web Services Working withREST and
ODATAServices
Programmingwith theREST API
Available SharePoint Web Services
• Open Standards
• RPC Model
• Protocol Agnostic
• XML
• Microsoft Proprietary
• Batch RPC Model
• Client Runtime
• XML / JSON
• Open Standards
• REST Model
• HTTP Only
• ATOM / JSON
SOAPWeb Services
(ASMX)
Client Side ObjectModel
(CSOM/JSOM)
REST API(ODATA)
SharePoint 2010 Web Service Access
SOAP CSOM REST
Lists and Libraries
Site and List Settings
Site Security
Workflow
Search
Managed Metadata
User Profiles
Publishing
SharePoint 2010 Web Service Clients
SOAP CSOM REST
JavaScript
Silverlight
.NET
Windows Phone
Other Languages
InfoPath Receive
InfoPath Submit
BCS WCF Connector
SharePoint 2013 Web Service Access
SOAP CSOM REST
Lists and Libraries
Site and List Settings
Site Security
Workflow
Search
Managed Metadata
User Profiles
Publishing
Deprecated
SharePoint 2010 Web Service Clients
SOAP CSOM REST
JavaScript
Silverlight
.NET
Windows Phone
Other Languages
InfoPath Receive
InfoPath Submit
BCS WCF Connector
Deprecated
What is SOAP?
Created by Microsoft in 1998 / W3C Standard
Protocol Agnostic / Common to use HTTP
RPC Message Pattern (Request/Response)
XML Schema used for Message Structures
SharePoint Web Service AddressesWeb Service Web Service AddressSearch http://<site>/_vti_bin/search.asmxUser Profiles http://<site>/_vti_bin/userprofileservice.asmxSites http://<site>/_vti_bin/sites.asmxLists http://<site>/_vti_bin/lists.asmxPermissions http://<site>/_vti_bin/permissions.asmxCopy http://<site>/_vti_bin/copy.asmx
31 Public Web Services (25+6) in SharePoint
SOAP Request Message Format
SOAP Envelope
SOAP Body
Method and Parameters
SOAP Considerations
• All Versions of SharePoint• Ubiquitous• Protocol Agnostic• Language Agnostic
• Access to Enterprise Services
• Designed to work with Proxy• Not JavaScript Friendly• Verbose Xml Data• No Anonymous
What is the CSOM?
Proprietary Microsoft SharePoint Client API
.NET / Silverlight / WP7 / ECMAScript
Mimics Server-side Object Model
Proprietary Message Transfer Format
CSOM Architecture
CSOM (.NET)
Create a Context
Load the Context
Execute Query
Access Properties
CSOM Considerations
• Efficient for Batch Operations• Familiar for SharePoint
Developers• Supports LINQ Queries• Works with Anonymous
• Less Efficient for Simple Operations• Unfamiliar to Web
Developers• Limited # of Client Runtimes• Microsoft Proprietary
What is REST?
Representational State Transfer
Web Addressable Resources / Hyperlink-able
Maps CRUD operations with HTTP Verbs
Commonly uses JSON for Data Messages
Anatomy of a REST CallRequest URLHTTP Method
HTTP Body withEncoded DataHeaders
HTTP Status CodesStatus Code Description
200 OK The server successfully processed the request.
400 Bad Request The server didn't understand the request.
401 Unauthorized The request requires authentication.404 Not Found The server can't find the requested
page.500 Internal Server Error
The server encountered an error.Calling a web
service requires checking the status
code to validate success
Data Encoding - ATOMPUB
Data Encoding - JSON
REST Considerations
• Efficient for simple operations• Familiar to Web Developers• HTTP and open standards• Very JavaScript Friendly• Limited support for Anonymous
• Complex for batch operations• Unfamiliar to SharePoint
Developers• Requires knowledge of HTTP
protocol and programming
Anatomy of a REST Call
Using the List Data Service
Using the Client REST API
Data Encoding
DEMO
Agenda
Introduction toSharePoint
Web Services
Working withREST and
ODATAServices Programming
with theREST API
ODATA Operations and Parameters
GET (Retrieve)POST (Create)PUT (Update All Fields)DELETE (Delete)MERGE (Update Specific)
$filter={simple predicate}$expand={Entity}$order by={property}$skip={n}$top={n}$metadata
Operations Parameters
ODATA Query Operators
Area Supported Not SupportedNumeric Comparisons
• Lt, Le• Gt, Ge• Eq, Ne
• add, sub, mul, div, mod
• round, floor, ceilingString Comparisons
• startsWith• substringof• Eq• Ne
• endsWith, trim• substring, replace,
concat• tolower, toupper
Date and Time Functions
• day(), month(), year()
• hour(), minute(), second()
• DateTimeRangesOverlap
Querying with ODATA
$Top and $Skip $Filter $Select $OrderBy $Expand
DEMO
Agenda
Introduction toSharePoint
Web Services
Working withREST and
ODATAServices
Programmingwith theREST API
Programming Tools / Platforms
• C++• C#• VB.NET• PHP• Java
• Datajs• jQuery• Sencha Rest Connector• JayData• RequestExecutor
Compiled Languages JavaScript Libraries
List Data Service Access Points
Area Access PointLists http://server/site/_vti_bin/ListData.svcList http://server/site/_vti_bin/ListData.svc/Tasks
Client REST Service Access Points
Area Access PointSite http://server/site/_api/siteWeb http://server/site/_api/webLists http://server/site/_api/web/listsList http://server/site/_api/web/lists/getbytitle(‘Tasks’)User Profile http://server/site/_api/
SP.UserProfiles.PeopleManagerSearch http://server/site/_api/searchPublishing http://server/site/_api/publishing
Visual Studio
List Data Service 2010 (ECMA Script)
Request Executor (SharePoint 2013)
Calling SharePoint REST APIs
HTTP Verbs Accept Headers Authentication eTags and Concurrency
DEMO
More Information
Choose the Right API set with SharePoint 2013http://msdn.microsoft.com/en-us/library/jj164060.aspx
Complete Basic Operations with the SharePoint 2013 Client Libraryhttp://msdn.microsoft.com/en-us/library/fp179912.aspx
Programming using the SharePoint 2013 REST Servicehttp://msdn.microsoft.com/en-us/library/fp142385.aspx
SharePoint 2010 Web Serviceshttp://msdn.microsoft.com/en-us/library/ee705814(v=office.14).aspx
Accessing SharePoint 2010 Lists by Using WCF Data Serviceshttp://msdn.microsoft.com/en-us/library/hh134614(v=office.14).aspx
Tools and Utilities
LinqPad – Learn ODATA Queries with Linqhttp://www.linqpad.net/
RESTClient – Java Application for Testing REST Programminghttps://code.google.com/p/rest-client/
CAML Designer for SharePoint 2010 and 2013http://sharepoint.biwug.be/SitePages/Caml_Designer.aspx
Fiddler – HTTP Debuggerhttp://www.fiddler2.com/fiddler2/
SharePoint 2013 Search Query Toolhttp://sp2013searchtool.codeplex.com/
Questions
Thank you for attending!
Please complete your evaluations. Your feedback is appreciated
chris.beckett@obeflow.
com
(425) 522-3727
@sharepointbits
blog.sharepointbits.co
m
Top Related