Date post: | 13-Apr-2017 |
Category: |
Technology |
Upload: | marc-anderson |
View: | 631 times |
Download: | 1 times |
Online Conference
June 17th and 18th 2015
WWW.COLLAB365.EVENTS
Moving from SOAP to Rest:You’ve Got to Do It Sometime
Marc D AndersonSympraxis Consulting LLC
WWW.COLLAB365.EVENTS
Marc D AndersonSympraxis Consulting LLC
Email : [email protected] : sympmarcFacebook : marc.d.andersonLinkedIn : marcanderson
• Co-Founder and President of Sympraxis Consulting LLC, located in the Boston suburb of Newton, MA, USA. Sympraxis focuses on enabling collaboration throughout the enterprise using the SharePoint application platform.
• Over 30 years of experience in technology professional services and software development. Over a wide-ranging career in consulting as well as line manager positions, Marc has proven himself as a problem solver and leader who can solve difficult technology problems for organizations across a wide variety of industries and organization sizes.
• Author of SPServices• Awarded Microsoft MVP for SharePoint Server 2011-2015
WWW.COLLAB365.EVENTS
Session OverviewIf you’ve been developing client side applications or functionality using SPServices and the SOAP Web Services, sooner or later you’ll want to move to REST instead.This session takes the patterns shown in my article series on ITUnity and my blog and makes it real with real-world examples. There are some things you can do now to prepare for this eventuality, whether it’s part of an upgrade to SharePoint 2013 or simply because you’ve got “legacy” code that uses SOAP instead of REST.We’ll go through the decision points, specific code examples, and better practices.
WWW.COLLAB365.EVENTS
Why Move from SOAP to REST?SOAP
Simple Object Access ProtocolCreated 1998 by Dave Winer et al for MicrosoftDiscoverability via WSDLXML-based
RESTRepresentational State TransferOData protocolsXML or JSONMuch wider usage
Sources: http://en.wikipedia.org/wiki/SOAP#History, http://en.wikipedia.org/wiki/Representational_state_transfer
WWW.COLLAB365.EVENTS
Services Across SharePoint Versions
Deprecated
Deprecated
Endpoint
/_vti_bin/listdata.svc
/_api
Deprecated TBD, but unified
NoneSOAP REST
WWW.COLLAB365.EVENTS
SharePoint’s SOAP Services
Source: https://spservices.codeplex.com/wikipage?title=$().SPServices
SOAP
WWW.COLLAB365.EVENTS
Conversion ApproachesAbstract data access (SPServices) callsGet familiar with promises and asynchronous calls (if you aren’t already)Begin using JSONConvert individual calls – mix and matchStart new development with REST – spackle with CSOM or SOAP
WWW.COLLAB365.EVENTS
Abstract Data AccessSO
AP
WWW.COLLAB365.EVENTS
Replace When ReadySO
AP
REST
WWW.COLLAB365.EVENTS
How Does SOAP Map to REST?SO
APRE
ST
WWW.COLLAB365.EVENTS
Mapping GetListItems: The Nitty-GrittySOAP Option
(SPServices synonym) REST Comments
ViewFields (CAMLViewFields)
$select Choose the columns you would like to retrieve. With both SOAP and REST we get some data we don’t explicitly request, but by specifying only the columns we need we can reduce the payload sizes.
Query(CAMLQuery)
$filter, $orderby
Specify which items in the list we would like to return and how we would like them sorted.
RowLimit(CAMLRowLimit)
$limit Say how many items matching the Query we would like to receive. In SOAP we can specify 0 to get all matching items; in REST we can omit the parameter to get all the matching items. Otherwise, we can specify any integer as the limit.
ViewName (CAMLViewName)
NA ViewName lets you choose the view you would like to get in the response. There’s no REST equivalent here. I’ve always discouraged using this option in SOAP because it’s too easy to change the view settings and cause unintended consequences.
QueryOptions (CAMLQueryOptions)
NA In SOAP, this lets us specify some options that change how the data is returned to us. For example, we can ask for all of the attachment URLs rather than just a Boolean which tells us that there are attachments.
NA $expand This option in REST has no direct equivalent in SOAP. $expand allows us to indicate that we would like the values for a relationship - rather than just the indices - using a projection. This is important with Lookup columns and Person or Group columns.
WWW.COLLAB365.EVENTS
Generic Read Function
WWW.COLLAB365.EVENTS
SPServices: XML vs. JSONJS
ONSP
GetL
istIte
msJs
onXM
LGe
tList
Item
s
WWW.COLLAB365.EVENTS
SharePoint REST: JSONJS
ON REST
WWW.COLLAB365.EVENTS
Chrome App: Postman
DemosWe’ll look at live examples showing the different ways we can request data, along with conversion approaches.
WWW.COLLAB365.EVENTS
ResourcesSharePoint 2013 – CRUD on List Items Using REST Services & jQueryGet started with the SharePoint 2013 REST serviceWorking with lists and list items with RESTUse OData query operations in SharePoint REST requestsOData.org
WWW.COLLAB365.EVENTS
Stay tuned for more great sessions …