#spsevents #spsphx SPS EVENTS PHX Know REST for the Query AN INTRODUCTION TO REST FOR SHAREPOINT 2013 ERIC J OSZAKIEWSKI, MCTS, MS, MCPS.

Slides:



Advertisements
Similar presentations
Pierre-Johan CHARTRE Java EE - JAX-RS - Pierre-Johan CHARTRE
Advertisements

Give it a REST already Arnon Rotem-Gal-Oz VP R&D xsights
Top 10 things you need to know about SharePoint Site Administration
REST - Representational State Transfer
REST Vs. SOAP.
Introduction to Web Services
Server Access The REST of the Story David Cleary
REST (Representational State Transfer)
SharePoint and Knockout for the REST of Us
Presentation Prep Open Fiddler
SharePoint 2010 Client Side Object Model. Agenda Introduction The Problem Client side vs Server Side Client Side Object Model – How it works – What can.
November 11, MCT, MCITP, MCTS, MCP SharePoint Architect for Planet Technologies. Working with SharePoint since – Administrator / Developer.
OASIS OData Technical Committee. AGENDA Introduction OASIS OData Technical Committee OData Overview Work of the Technical Committee Q&A.
Eric J. Oszakiewski MCTS: SharePoint Application Development SharePoint Configuration.
Using SD K12 SharePoint®.
©2012 Microsoft Corporation. All rights reserved. Content based on SharePoint 15 Technical Preview and published July Solution Architect,Microsoft.
Building RESTful Interfaces
1Proprietary and Confidential AirVantage API – Getting started David SCIAMMA – June 13th 2014.
Semantic Web Introduction
SOAP Quang Vinh Pham Simon De Baets Université Libre de Bruxelles1.
ADVANTAGE WEBAPI PETER FUNK SOFTWARE ENGINEER, ADVANTAGE R&D MAY 20, 2011.
@lestersconyers #spsevents #spsphx SPS EVENTS PHX SharePoint and Angular Sitting in a Tree… LESTER SCONYERS.
Microsoft ® Official Course Interacting with the Search Service Microsoft SharePoint 2013 SharePoint Practice.
SharePoint Implementation & Adoption Challenges
Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf
Building Dynamic Applications on both Office 365 and on-premise.
Configuration Management and Server Administration Mohan Bang Endeca Server.
Designing and Implementing Web Data Services in Perl
ASP.NET Web API Udaiappa Ramachandran NHDN-Nashua.NET/Cloud Computing UG Lead Blog:
REST.  REST is an acronym standing for Representational State Transfer  A software architecture style for building scalable web services  Typically,
Google Data APIs Google Data APIs : Integrando suas aplicações Java com os serviços Google.
Prepared By : Monika Darji Web Services using REST & JAX-WS.
ADO.NET DATA SERVICES Mike Taulty Developer & Platform Group Microsoft UK
Open Data Protocol * Han Wang 11/30/2012 *
Introduction to the SharePoint 2013 REST API. 2 About Me SharePoint Solutions Architect at Sparkhound in Baton Rouge
RESTful Web Service 2014 년 12 월 한연희
NHIN DIRECT REST IMPLEMENTATION Prepared by: The NHIN Direct REST Team June 8, 2010.
Solutions using Microsoft Content Management Server 2002 Connector for SharePoint Technologies Sue Corke Mark Harrison Microsoft UK.
Chapter 29 World Wide Web & Browsing World Wide Web (WWW) is a distributed hypermedia (hypertext & graphics) on-line repository of information that users.
1 ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd
WORKING WITH THE “CALL HTTP WEB SERVICE” WORKFLOW ACTIVITY Derek Nishino Nishino Consulting
Using OData Data Sources in SharePoint 2013 Solutions Hunter
RESTful Web Services What is RESTful?
Welcome to the Minnesota SharePoint User Group February 13 th, 2013 SharePoint 2013 – Developers Track - Client Side Rendering.
Web Services An Introduction Copyright © Curt Hill.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
The Client-Server Model
API (Application Program Interface)
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
z/Ware 2.0 Technical Overview
CSOM and REST Name Title Company.
REST: Web Services Abel Sanchez.
Node.js Express Web Services
An introduction to REST for SharePoint 2013
Hypertext Transfer Protocol
Office 365 Development.
WEB API.
Windows Azure Keenan Newton 3-021
Implementing Listening Producers in IBM Sterling Filegateway
SharePoint Guy, Protiviti
$, $$, $$$ API testing Edition
WEB SERVICES From Chapter 19, Distributed Systems
Web APIs In computer programming, an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application.
Week 05 Node.js Week 05
Links Launch Outlook Launch Skype Place Skype on Do Not Disturb.
WCF Data Services and Silverlight
.NET Framework V3.5+ & RESTful web services
Chengyu Sun California State University, Los Angeles
Presentation transcript:

#spsevents #spsphx SPS EVENTS PHX Know REST for the Query AN INTRODUCTION TO REST FOR SHAREPOINT 2013 ERIC J OSZAKIEWSKI, MCTS, MS, MCPS

#spsevents #spsphx Agenda  What is REST?  SharePoint 2013 REST  SharePoint REST endpoint URI structure  Navigating the SharePoint REST data structure  Working with Lists and List Items  Working with Folders and Files  Leveraging permissions using REST  Q & A

#spsevents #spsphx About Me  SharePoint/.Net Developer for General Motors  MCTS – SharePoint 2010 Application Development  Building on SharePoint since 2007 (WSS 2.0)  Started programming in 1982 on IBM 3090 mainframe

#spsevents #spsphx What is REST?  REpresentational State Transfer  Stateless architecture that exploits HTTP and XML using common web operations (GET, POST, PUT, DELETE)  Introduced and defined in 2000 by Roy Fielding, developed by the W3C Technical Architecture Group in parallel with HTTP 1.1.  Can support large numbers of components and interactions  Very simple to implement  Platform independent

#spsevents #spsphx What is REST?  Components of REST:  Base URI (  Media type (JSON, Atom, XML)  Standard HTTP methods (GET, POST, PUT, DELETE)  No official standard for RESTful web APIs, because REST is an architectural style, not a protocol.

#spsevents #spsphx SharePoint 2013 REST  Remotely interact with SharePoint sites  Open Data Protocol (OData) standard, which corresponds to the desired client object model API  Ex: List.GetByTitle(ListName) looks like  client.svc web service in SharePoint handles the HTTP request  Result is returned in either JSON (JavaScript Object Notation) or Atom.

#spsevents #spsphx SharePoint 2013 REST

#spsevents #spsphx SharePoint 2013 REST  REST allows typical CRUD operations:  Read a resource: GET  Create or update a resource: POST  Update or insert a resource: PUT  Delete a resource: DELETE

#spsevents #spsphx SharePoint REST endpoint URI structure  URI closely mimics the API in the SharePoint COM  To access a site collection:   To access a specific site (web):   Starting with this, you can “walk” the object model  /_vti_bin/client.svc or /_api?

#spsevents #spsphx Navigating the SharePoint REST data structure  Examples:  _api/Web/Lists – retrieve all lists on a site  _api/Web/Lists/getByTitle(‘widgets’) – get info on the Widgets list  _api/Web/Lists(guid‘abcd1234-dc6d-434b-bedf-046ad626bd0e') – get info on a list by using GUID  _api/Web/Lists/getByTitle(‘widgets’)/Items – See all items in the Tasks list  _api/Web/Lists/getByTitle(‘widgets’)/Items(2) – See the 2 nd item in the Tasks list

#spsevents #spsphx Navigating the SharePoint REST data structure  Walk the object model

#spsevents #spsphx Navigating the SharePoint REST data structure  Filtering (OData)  _api/Web/Lists/getByTitle(‘widgets’)/Items?$select=Title – See only titles of all items in the Tasks list  _api/Web/Lists/getByTitle(‘widgets’)/Items(2)?$select=Title – See the title of the 2 nd item in the Tasks list  _api/Web/Lists/getByTitle(‘widgets’)/Items?$filter=startsWith(Title, ‘R’) – See all items in the Task list where the Title starts with an R  _api/Web/Lists/getByTitle(‘widgets’)/Items?$filter=startsWith(Title, ‘C’) &$select=Title – See only the title of all items in the Task list where the Title starts with a C  _api/web/lists/getByTitle(‘widgets’)/items?$top=10 – Return only the first 10 items  _api/web/lists/getByTitle(‘widgets’)/items?$orderby=Created desc – returns all list items in date order by newest record

#spsevents #spsphx Navigating the SharePoint REST data structure  Converting to JSON  $filter=startswith(Title, ‘R’)&$select=Title  Add header  Accept: application/json;odata=verbose  Results will be in JSON format

#spsevents #spsphx Navigating the SharePoint REST data structure  Filtering

#spsevents #spsphx Working with Lists and List Items  Creating list item  Two methods of enforcing request security  Add FormDigestValue to query  /_api/contextinfo (POST)  Look for FormDigestValue  Copy entire value to use in building POST query  Use "X-RequestDigest": $("#__REQUESTDIGEST").val()

#spsevents #spsphx Working with Lists and List Items  Begin with POST URL   Add 3 headers  Accept: application/json;odata=verbose  content-type: application/json;odata=verbose  X-RequestDigest: Form Digest Value you just copied  Request Body  {'__metadata':{'type':'SP.Data.Category_x0020_TypeListItem'},'Title': ‘My Category'}

#spsevents #spsphx Working with Lists and List Items  Request Body – __metadata { ‘type’}  GET - Look for category term of other similar list items to get type

#spsevents #spsphx Working with Lists and List Items  Creating list item

#spsevents #spsphx Working with Lists and List Items  Updating list item  Begin with POST URL   Added item ID (important!)  Add 5 headers  X-HTTP-Method:MERGE  If-Match: *  accept: application/json;odata=verbose  content-type: application/json;odata=verbose  X-RequestDigest: Form Digest Value you copied  Request Body  {'__metadata':{'type':'SP.Data.Category_x0020_TypeListItem'},'Title':'Category X'}

#spsevents #spsphx Working with Lists and List Items  Updating list item – additional headers  X-HTTP-Method:MERGE is required when updating list item info  If-Match: * used in conditional circumstances, such as updating list items!  * = if data is found, proceed with operation  Conditional Method (read more at Protocols/rfc2616/rfc2616-sec14.html

#spsevents #spsphx Working with Lists and List Items  Updating list item

#spsevents #spsphx Working with Lists and List Items  Deleting list item  Begin with POST URL   Added item ID (important!)  Add 3 headers  X-HTTP-Method:DELETE  If-Match: *  X-RequestDigest: Form Digest Value you copied  No request body is needed since we’re deleting something

#spsevents #spsphx Working with Lists and List Items  Deleting list item

#spsevents #spsphx Working with Folders and Files  GET /_api/Web/GetFolderByServerRelativeUrl(‘/doclibrary’)  Will return data about the selected library  Creating a folder (POST)  /_api/web/folders  3 Headers  X-RequestDigest: copied value  accept: application/json;odata=verbose  content-type: application/json;odata=verbose  Request body  {'__metadata':{'type':'SP.Folder'},‘ServerRelativeUrl':‘/Shared Documents/Another Folder'}

#spsevents #spsphx Working with Folders and Files  Request Body – Server Relative Url  _api/web/folders  Locate desired folder and find ServerRelativeUrl element

#spsevents #spsphx Working with Folders and Files  Files  GET _api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files – get all files in the chosen folder  Specific file: GET _api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files('file name')/$value  Will return the data contained in the file (if possible)  _api/web/GetFileByServerRelativeUrl('/Folder Name/file name')/$value

#spsevents #spsphx Working with Folders and Files  Create a File in a folder  POST  _api/web/GetFolderByServerRelativeUrl('/Folder Name')/Files/add(url=‘filename.ext’,overwrite=true)  Request Body  Whatever goes in the file  1 Header  X-RequestDigest: copied value

#spsevents #spsphx Working with Folders and Files  Creating a file in a folder

#spsevents #spsphx Leveraging Permissions  Desired Group  Target Role Definition  Break Inheritance  Alter Group Role  Check Permissions

#spsevents #spsphx Customizing List Permissions  GET /_api/web/sitegroups/getbyname(‘GroupName’)/id  Will return the ID of this group  GET /_api/web/roledefinitions/getbyname(‘Contribute’)/id  Will return the ID of the desired role  POST /_api/web/lists/getbytitle(‘Category Type’)/breakroleinheritance(true)  Will do exactly that  Requires X-RequestDigest in header  POST /_api/web/lists/getbytitle(‘Category Type’)/roleassignments/getbyprincipalid(groupid)  Removes existing permission for this group  Requires X-RequestDigest and X-HTTP-Method: DELETE in header  POST /_api/web/lists/getbytitle(‘Category Type’)/roleassignments/addroleassignment(principalid=groupid,roledefid=roleid)  Sets desired permission on chosen group  Requires only X-RequestDigest in header

#spsevents #spsphx Working with Folders and Files  Checking Permissions

#spsevents #spsphx Summary  SharePoint 2013 REST overview & structure  Navigated the SharePoint REST data structure  Working with Lists and List Items  Working with Folders and Files  Leveraging permissions using REST

#spsevents #spsphx Questions?

#spsevents #spsphx Thank you sponsors GoldSilverBronze

#spsevents #spsphx Thank you! MSDN References Get started with SharePoint 2013 REST  Working with Lists and List Items in REST  Working with Folders and Files in REST  SharePoint REST endpoint URI structure  OData query operators supported in SharePoint's REST  Navigating the SharePoint REST data structure  Set custom permissions on a list using REST  Complete basic operations using SharePoint REST |Web:

#spsevents #spsphx SharePint Come socialize with the speakers and attendees Meet us at Thirsty Tempe Marketplace immediately after SPSPHX Reservations under SharePoint Saturday