Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Taking Advantage of the SharePoint 2013 REST API
1. Get Some REST: SharePoint 2013 REST API's
Eric Shupps
SharePoint Server MVP
2. Sponsored by:
Real-time application monitoring, event
management, and operational health
metrics for Microsoft SharePoint
Reduce troubleshooting time by up to 30%
Increase efficiency and improve user satisfaction
Avoid downtime and costly outages
Meet or exceed service level agreements
Maximize investment in current infrastructure
Visit us on the web at www.binarywave.com
6. Background
HTTP-based web service architecture that
uses nouns and verbs to define operations
Noun: “Items”
Verbs: GET, POST, PUT, DELETE
OData provides metadata, object typing
and query semantics for underlying data
structure (WCF data services)
/items(0)
Client Object Model service (client.svc)
processes queries, interacts with server OM,
returns formatted response (JSON, XML)
/items/GetByTitle(‘foo’)
10. Gotchas
OData
Spec != SharePoint REST
No request batching
Must specify “odata=verbose” in header
Default response format is ATOM
Use CSOM notation when accessing
static methods and properties
Some requests may not return default
values due to processing overhead
15. Sites
Get Feature
http://<site collection>/<site>/_api/sites/features/GetById(guid’<value>’)
View Event Receivers
http://<site collection>/<site>/_api/sites/eventreceivers
Create a Site
http://<site collection>/<site>/_api/web/webinfos/add
{ 'd' :{
'parameters': {
'__metadata': {'type': 'SP.WebInfoCreationInformation' },
'Url': 'RestSubWeb',
'Title': 'RestSubWeb',
'Description': 'rest created web',
'Language':1033,
'WebTemplate':'sts',
'UseUniquePermissions':false}
}}
16. Lists
Get All Lists
http://<site collection>/<site>/_api/lists
Get List
http://<site collection>/<site>/_api/lists/GetByTitle(‘Shared Documents’)
Get List Item
http://<site collection>/<site>/_api/lists/GetByTitle(‘Shared Documents’)/items/GetById(0)
Get List Item with Specific Properties
http://<site collection>/<site>/_api/lists/GetByTitle(‘Shared Documents’)/items/
GetById(1)?$select=Title,ID
18. Social
Get Followed Users
http://<site collection>/<site>/_api/social.following/followed
Get Followed Documents
http://<siteCollection>/<site>/_api/social.following/my/followeddocumentsuri
Get Suggestions
http://<site collection>/<site>/_api/sp.userprofiles.peoplemanager/getmysuggestions
Get Followers
http://<siteCollection>/<site>/_api/sp.userprofiles.peoplemanager/
getpeoplefollowedby(accountName=@v)?@v='domainuser'
21. Sorting & Filtering
Filter with Comparison
http://<site>/_api/web/lists/getbytitle(‘Products’)/items/?$filter=Price gt 30000
Join with Filter
http://<site>/_api/web/lists/getbytitle(‘Products’)/items()?
$select=Title,Price,Supplier_/Title&$expand=Supplier_/Title&$filter=Supplier_/Title eq ‘Acme’
Top ‘N’ Results
http://<site collection>/<site>/_api/web/lists('<guid>')/items$top=10
22. CRUD Operations
Create a List Item
url: http://site url/_api/web/lists/GetByTitle(‘Test')/items
method: POST
body: { '__metadata': { 'type': 'SP.Data.TestListItem' }, 'Title': 'Test'}
headers:
Authorization = "Bearer " + accessToken
X-RequestDigest = form digest value
accept: "application/json;odata=verbose"
content-type: "application/json;odata=verbose"
content-length:1024
Edit a List Item
url: http://site url/_api/web/lists/GetByTitle(‘Test')/items(item id)
method: POST
body: { '__metadata': { 'type': 'SP.Data.TestListItem' }, 'Title': 'TestUpdated'}
headers:
Authorization = "Bearer " + accessToken
X-RequestDigest = form digest value
“IF-MATCH”: etag or “*”
“X-HTTP-Method”:”MERGE”,
accept: "application/json;odata=verbose"
content-type: "application/json;odata=verbose"
content-length:1024
23. Form Digest
Used
to prevent replay attacks
Updates will fail without digest value
Local
$("#__REQUESTDIGEST").val()
Remote
POST to /_api/contextinfo
26. Authorization
Remote
Use CSOM to set context
Sites/Webs/Lists
– Handled by appweb not hostweb
Pass token in request
– RequestExecutor
Local
Use current context
32. Sponsored by:
Real-time application monitoring, event
management, and operational health
metrics for Microsoft SharePoint
Reduce troubleshooting time by up to 30%
Increase efficiency and improve user satisfaction
Avoid downtime and costly outages
Meet or exceed service level agreements
Maximize investment in current infrastructure
Visit us on the web at www.binarywave.com
33. Resources
Description
Link
Programming Using the SharePoint 2013 REST Service
http://bit.ly/TUwC9N
OData URI Conventions
http://bit.ly/Ytgdz4
Using the SharePoint 2013 REST Service
http://bit.ly/YPHif5
SharePoint 2013 Search REST API
http://bit.ly/ZqzOuM
Configuring SharePoint 2013 Search REST for Anonymous Users
http://bit.ly/152vFoy
SharePoint 2013 REST TypeScript Library
http://sprestts.codeplex.com