Taking Advantage of the SharePoint 2013 REST API
CKS:DEV
The
SharePoint
Cowboy
Patterns
&
Practices
Eric Shupps
www.sharepointcowboy.com eshupps@binarywave.com facebook.co...
Introduction
Basic
Operations
JavaScript
Endpoints
Advanced
Methods
Windows 8
INTRODUCTION
HTTP-based web service architecture that
uses nouns and verbs to define operations
Noun: “Items”
Verbs: GET, POST, PUT, DE...
Client.svc
Server
OM
Content
DB
READ
CREATE
UPDATE
DELETE
POST
GET
PUT, MERGE, DELETE
http://contoso/_api/items/GetById(1)?$select=Title,ID
Location Service Resource Path Query Options
Local
Current
Context
Request
Digest
Remote
OAuth
Access
Token
Cross
Domain
Request
Executor
SP.WebProxy
HTTP
WebRequest
C...
ENDPOINTS
Site Web Publishing
User
Profiles
Webs
Features
Event
Receivers
Users
Profiles
Activity
Lists
Items
Pages
Variations
Navig...
BASIC OPERATIONS
• SP.RequestExecutor
• accept: "application/json;odata=verbose"
http://<site collection>/<site>/_api/sites/features/GetById(guid’<value>’)
http://<site collection>/<site>/_api/sites/even...
http://<site collection>/<site>/_api/lists
Get All Lists
http://<site collection>/<site>/_api/lists/GetByTitle(‘Shared Doc...
http://<site collection>/<site>/_api/search/query?queryText=‘Value’
Simple Term
http://<site collection>/<site>/_api/searc...
http://<site collection>/<site>/_api/social.following/followed
Get Followed Users
http://<siteCollection>/<site>/_api/soci...
ADVANCED METHODS
http://<site>/_api/Web/Lists(guid’<value>′)/Items(1)/FieldValuesAsHtml
HTML Values
http://<site>/_api/web/lists/getbytitle...
http://<site>/_api/web/lists/getbytitle(‘Products’)/items/?$filter=Price gt 30000
Filter with Comparison
http://<site>/_ap...
url: http://site url/_api/web/lists/GetByTitle(‘Test')/items
method: POST
body: { '__metadata': { 'type': 'SP.Data.TestLis...
• Used to prevent replay attacks
• Updates will fail without digest value
• Local
• $("#__REQUESTDIGEST").val()
• Remote
•...
Description Link
Programming Using the SharePoint 2013 REST Service http://bit.ly/TUwC9N
OData URI Conventions http://bit....
SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API
SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API
SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API
SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API
SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API
SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API
SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API
SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API
Upcoming SlideShare
Loading in …5
×

SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API

996 views
718 views

Published on

Published in: Technology, Design
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
996
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
18
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

SPTECHCON - Get Some REST - Taking Advantage of the SharePoint 2013 REST API

  1. 1. Taking Advantage of the SharePoint 2013 REST API
  2. 2. CKS:DEV The SharePoint Cowboy Patterns & Practices Eric Shupps www.sharepointcowboy.com eshupps@binarywave.com facebook.com/sharepointcowboy @eshupps
  3. 3. Introduction Basic Operations JavaScript Endpoints Advanced Methods Windows 8
  4. 4. INTRODUCTION
  5. 5. 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’)
  6. 6. Client.svc Server OM Content DB READ CREATE UPDATE DELETE POST GET PUT, MERGE, DELETE
  7. 7. http://contoso/_api/items/GetById(1)?$select=Title,ID Location Service Resource Path Query Options
  8. 8. Local Current Context Request Digest Remote OAuth Access Token Cross Domain Request Executor SP.WebProxy HTTP WebRequest Context Info Cross Domain
  9. 9. ENDPOINTS
  10. 10. Site Web Publishing User Profiles Webs Features Event Receivers Users Profiles Activity Lists Items Pages Variations Navigation Query Results Suggestions Search Taxonomy Managed Metadata
  11. 11. BASIC OPERATIONS
  12. 12. • SP.RequestExecutor • accept: "application/json;odata=verbose"
  13. 13. http://<site collection>/<site>/_api/sites/features/GetById(guid’<value>’) http://<site collection>/<site>/_api/sites/eventreceivers View Event Receivers 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} }} Create a Site Get Feature
  14. 14. http://<site collection>/<site>/_api/lists Get All Lists http://<site collection>/<site>/_api/lists/GetByTitle(‘Shared Documents’) Get List http://<site collection>/<site>/_api/lists/GetByTitle(‘Shared Documents’)/items/GetById(0) Get List Item http://<site collection>/<site>/_api/lists/GetByTitle(‘Shared Documents’)/items/ GetById(1)?$select=Title,ID Get List Item with Specific Properties
  15. 15. http://<site collection>/<site>/_api/search/query?queryText=‘Value’ Simple Term http://<site collection>/<site>/_api/search/query?queryText=‘PreferredName: Robert Smith’ Item Property http://<site collection>/<site>/_api/search/suggest?queryText=‘quarterly sales’ Suggestions
  16. 16. http://<site collection>/<site>/_api/social.following/followed Get Followed Users http://<siteCollection>/<site>/_api/social.following/my/followeddocumentsuri Get Followed Documents http://<site collection>/<site>/_api/sp.userprofiles.peoplemanager/getmysuggestions Get Suggestions http://<siteCollection>/<site>/_api/sp.userprofiles.peoplemanager/ getpeoplefollowedby(accountName=@v)?@v='domainuser' Get Followers
  17. 17. ADVANCED METHODS
  18. 18. http://<site>/_api/Web/Lists(guid’<value>′)/Items(1)/FieldValuesAsHtml HTML Values http://<site>/_api/web/lists/getbytitle(‘Products’)/items()/?$select=Title, Price,effectivebasepermissions Get Permissions http://<site>/_api/web/lists/getbytitle('Products')/items()?$select=Title, Price,Supplier_/Title&$expand=Supplier_/Title Join
  19. 19. http://<site>/_api/web/lists/getbytitle(‘Products’)/items/?$filter=Price gt 30000 Filter with Comparison http://<site>/_api/web/lists/getbytitle(‘Products’)/items()? $select=Title,Price,Supplier_/Title&$expand=Supplier_/Title&$filter=Supplier_/Title eq ‘Acme’ Join with Filter http://<site collection>/<site>/_api/web/lists('<guid>')/items$top=10 Top ‘N’ Results
  20. 20. 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 Create 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 Edit a List Item
  21. 21. • Used to prevent replay attacks • Updates will fail without digest value • Local • $("#__REQUESTDIGEST").val() • Remote • POST to /_api/contextinfo
  22. 22. 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

×