Вы находитесь на странице: 1из 34

Get Some REST: SharePoint 2013 REST API's

Eric Shupps
SharePoint Server MVP
Sponsored by:
Visit us on the web at www.binarywave.com
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
Sponsored by:
Visit us on the web at www.binarywave.com
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
About Me
CKS:DEV
The
SharePoint
Cowboy
Patterns
&
Practices
Eric Shupps
www.sharepointcowboy.com eshupps@binarywave.com
facebook.com/sharepointcowboy @eshupps
Agenda
Introduction
Basic
Operations
JavaScript
Endpoints
Advanced
Methods
Windows 8
INTRODUCTION
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)
Implementation
C
l
i
e
n
t
.
s
v
c
Server
OM
Content
DB
READ
CREATE
UPDATE
DELETE
POST
GET
PUT, MERGE, DELETE
Structure
http://contoso/_api/items/GetById(1)?$select=Title,ID
Location Service Resource Path Query Options
Security
Local
Current
Context
Request
Digest
Remote
OAuth
Access
Token
Cross
Domain
Request
Executor
SP.WebProxy
HTTP
WebRequest
Context
Info
Cross
Domain
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
ENDPOINTS
SharePoint 2013 REST Endpoints
Site Web Publishing
User
Profiles
Webs
Features
Event
Receivers
Users
Profiles
Activity
Lists
Items
Pages
Variations
Navigation
Query Results
Suggestions
Search Taxonomy
Managed
Metadata
Metadata
You
Must
Be
Joking!
BASIC OPERATIONS
Sites
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
Lists
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
Search
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
Social
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='domain\user'
Get Followers
ADVANCED METHODS
Queries
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
Sorting & Filtering
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
CRUD Operations
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
Form Digest
Used to prevent replay attacks
Updates will fail without digest value
Local
$("#__REQUESTDIGEST").val()
Remote
POST to /_api/contextinfo
JAVASCRIPT
Operations
Async GET/POST operations using AJAX
library
Cross-Domain Library
SP.RequestExecutor
Remote Apps: SP.AppContextSite with
@target
JSON response
accept: "application/json;odata=verbose"
Authorization
Remote
Use CSOM to set context
Sites/Webs/Lists
Handled by appweb not hostweb
Pass token in request
RequestExecutor
Local
Use current context
PROVIDER HOSTED APP
Retrieving SharePoint list data with jQuery, REST and AJAX
WINDOWS 8
Operations
XAML
List items with specific fields
Async
HTTPClient, HTTPClientHandler
ATOM
LINQ
Authorization
Domain Credentials
Permissions
Enterprise Authentication
Private Networks
WINDOWS 8 APP
Uploading Documents to SharePoint using REST
Sponsored by:
Visit us on the web at www.binarywave.com
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
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

Вам также может понравиться