An introduction to REST for SharePoint 2013

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
REST Vs. SOAP.
Introduction to Web Services
Server Access The REST of the Story David Cleary
SharePoint and Knockout for the REST of Us
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.
©2012 Microsoft Corporation. All rights reserved. Content based on SharePoint 15 Technical Preview and published July Solution Architect,Microsoft.
General introduction to Web services and an implementation example
#spsevents #spsphx SPS EVENTS PHX Know REST for the Query AN INTRODUCTION TO REST FOR SHAREPOINT 2013 ERIC J OSZAKIEWSKI, MCTS, MS, MCPS.
SOAP Quang Vinh Pham Simon De Baets Université Libre de Bruxelles1.
ADVANTAGE WEBAPI PETER FUNK SOFTWARE ENGINEER, ADVANTAGE R&D MAY 20, 2011.
With jQuery and AJAX Doncho Minkov Telerik Corporation Technical Trainer.
Microsoft ® Official Course Interacting with the Search Service Microsoft SharePoint 2013 SharePoint Practice.
CS 415 N-Tier Application Development By Umair Ashraf July 6,2013 National University of Computer and Emerging Sciences Lecture # 9 Introduction to Web.
Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf
Hennie Laubscher K2 Brian Farnhill Independent Consultant.
Building Dynamic Applications on both Office 365 and on-premise.
Configuration Management and Server Administration Mohan Bang Endeca Server.
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
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
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
SNOWTAM Trial: REST Interface. AIXM XML Developers' Seminar 2 Contents Digital-SNOWTAM Trial Introduction REST Introduction REST in the Digital-SNOWTAM.
1 © Donald F. Ferguson, All rights reserved.Modern Internet Service Oriented Application Development – Lecture 2: REST Details and Patterns Some.
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.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Janakiram MSV Developer Evangelist Microsoft Corporation.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
Esri UC 2014 | Technical Workshop | Administering ArcGIS for Server with Python Jon Bodamer.
REST API Design. Application API API = Application Programming Interface APIs expose functionality of an application or service that exists independently.
Business Directory REST API
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
Understanding SOAP and REST calls The types of web service requests
CSOM and REST Name Title Company.
REST: Web Services Abel Sanchez.
Node.js Express Web Services
Office 365 Development.
Ashish Pandit IT Architect, Middleware & Integration Services
Testing REST IPA using POSTMAN
WEB API.
02 | Web API Basic Design Jeremy Likness | Principal Architect
SharePoint data access and LINQ to SharePoint
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
Consuming Web Services with 2E Generated Objects
Links Launch Outlook Launch Skype Place Skype on Do Not Disturb.
WCF Data Services and Silverlight
Office 365 Development.
.NET Framework V3.5+ & RESTful web services
Chengyu Sun California State University, Los Angeles
Presentation transcript:

An introduction to REST for SharePoint 2013 Know REST for the Query An introduction to REST for SharePoint 2013 Eric J Oszakiewski, MCTS, MS, MCPS

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

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

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

What is REST? Components of REST: Base URI (http://sharepoint.com/site) 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.

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 http://server/site/_api/web/lists/getbytitle(‘listname’) client.svc web service in SharePoint handles the HTTP request Result is returned in either JSON (JavaScript Object Notation) or Atom.

SharePoint 2013 REST

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

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

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 2nd item in the Tasks list

Navigating the SharePoint REST data structure Walk the object model DEMO

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 2nd 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

Navigating the SharePoint REST data structure Converting to JSON http://sp2013/_api/Web/Lists/getByTitle('Category%20Type')/Items? $filter=startswith(Title, ‘R’)&$select=Title Add header Accept: application/json;odata=verbose Results will be in JSON format

Navigating the SharePoint REST data structure Filtering DEMO

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()

Working with Lists and List Items Begin with POST URL http://sp2013/_api/Web/Lists/getByTitle('Category%20Type')/Items 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'}

Working with Lists and List Items Request Body – __metadata { ‘type’} GET http://sp2013/_api/Web/Lists/getByTitle('Category%20Type')/Items - Look for category term of other similar list items to get type

Working with Lists and List Items Creating list item DEMO

Working with Lists and List Items Updating list item Begin with POST URL http://sp2013/_api/Web/Lists/getByTitle('Category%20Type')/Items(9) 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'}

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 www.w3.org Protocols/rfc2616/rfc2616-sec14.html

Working with Lists and List Items Updating list item DEMO

Working with Lists and List Items Deleting list item Begin with POST URL http://sp2013/_api/Web/Lists/getByTitle('Category%20Type')/Items(9) 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

Working with Lists and List Items Deleting list item DEMO

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'}

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

Working with Folders and 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

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

Working with Folders and Files Creating a file in a folder DEMO

Leveraging Permissions Desired Group Target Role Definition Break Inheritance Alter Group Role Check Permissions

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

Working with Folders and Files Checking Permissions DEMO

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

Questions?

Thank you! MSDN References Get started with SharePoint 2013 REST http://eoszak.me/sharepointeric 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 Email: eric@oszakiewski.net |Web: http://oszak.com |Twitter: @eoszak