5. Available SharePoint Web Services
• Open Standards
• RPC Model
• Protocol Agnostic
• XML
• Microsoft Proprietary
• Batch RPC Model
• Client Runtime
• XML / JSON
• Open Standards
• REST Model
• HTTP Only
• ATOM / JSON
SOAP
Web Services
(ASMX)
Client Side Object
Model
(CSOM/JSOM)
REST API
(ODATA)
6. SharePoint 2010 Web Service Access
SOAP CSOM REST
Lists and Libraries
Site and List Settings
Site Security
Workflow
Search
Managed Metadata
User Profiles
Publishing
7. SharePoint 2010 Web Service Clients
SOAP CSOM REST
JavaScript
Silverlight
.NET
Windows Phone
Other Languages
InfoPath Receive
InfoPath Submit
BCS WCF Connector
8. SharePoint 2013 Web Service Access
SOAP CSOM REST
Lists and Libraries
Site and List Settings
Site Security
Workflow
Search
Managed Metadata
User Profiles
Publishing
Deprecated
9. SharePoint 2010 Web Service Clients
SOAP CSOM REST
JavaScript
Silverlight
.NET
Windows Phone
Other Languages
InfoPath Receive
InfoPath Submit
BCS WCF Connector
Deprecated
10. What is SOAP?
Created by Microsoft in 1998 / W3C Standard
Protocol Agnostic / Common to use HTTP
RPC Message Pattern (Request/Response)
XML Schema used for Message Structures
11. SharePoint Web Service Addresses
Web Service Web Service Address
Search http://<site>/_vti_bin/search.asmx
User Profiles http://<site>/_vti_bin/userprofileservice.asmx
Sites http://<site>/_vti_bin/sites.asmx
Lists http://<site>/_vti_bin/lists.asmx
Permissions http://<site>/_vti_bin/permissions.asmx
Copy http://<site>/_vti_bin/copy.asmx
31 Public Web Services (25+6) in SharePoint
13. SOAP Considerations
• All Versions of SharePoint
• Ubiquitous
• Protocol Agnostic
• Language Agnostic
• Access to Enterprise Services
• Designed to work with Proxy
• Not JavaScript Friendly
• Verbose Xml Data
• No Anonymous
14. What is the CSOM?
Proprietary Microsoft SharePoint Client API
.NET / Silverlight / WP7 / ECMAScript
Mimics Server-side Object Model
Proprietary Message Transfer Format
17. CSOM Considerations
• Efficient for Batch Operations
• Familiar for SharePoint
Developers
• Supports LINQ Queries
• Works with Anonymous
• Less Efficient for Simple
Operations
• Unfamiliar to Web Developers
• Limited # of Client Runtimes
• Microsoft Proprietary
18. What is REST?
Representational State Transfer
Web Addressable Resources / Hyperlink-able
Maps CRUD operations with HTTP Verbs
Commonly uses JSON for Data Messages
19. Anatomy of a REST Call
Request URLHTTP Method
HTTP Body with
Encoded DataHeaders
20. HTTP Status Codes
Status Code Description
200 OK The server successfully processed the request.
400 Bad Request The server didn't understand the request.
401 Unauthorized The request requires authentication.
404 Not Found The server can't find the requested page.
500 Internal Server Error The server encountered an error.
Calling a web service
requires checking the
status code to validate
success
23. REST Considerations
• Efficient for simple operations
• Familiar to Web Developers
• HTTP and open standards
• Very JavaScript Friendly
• Limited support for Anonymous
• Complex for batch operations
• Unfamiliar to SharePoint
Developers
• Requires knowledge of HTTP
protocol and programming
24. Anatomy of a REST
Call
Using the List Data Service
Using the Client REST API
Data Encoding
32. List Data Service Access Points
Area Access Point
Lists http://server/site/_vti_bin/ListData.svc
List http://server/site/_vti_bin/ListData.svc/Tasks
33. Client REST Service Access Points
Area Access Point
Site http://server/site/_api/site
Web http://server/site/_api/web
Lists http://server/site/_api/web/lists
List http://server/site/_api/web/lists/getbytitle(‘Tasks’)
User Profile http://server/site/_api/SP.UserProfiles.PeopleManager
Search http://server/site/_api/search
Publishing http://server/site/_api/publishing
38. More Information
Choose the Right API set with SharePoint 2013
http://msdn.microsoft.com/en-us/library/jj164060.aspx
Complete Basic Operations with the SharePoint 2013 Client Library
http://msdn.microsoft.com/en-us/library/fp179912.aspx
Programming using the SharePoint 2013 REST Service
http://msdn.microsoft.com/en-us/library/fp142385.aspx
SharePoint 2010 Web Services
http://msdn.microsoft.com/en-us/library/ee705814(v=office.14).aspx
Accessing SharePoint 2010 Lists by Using WCF Data Services
http://msdn.microsoft.com/en-us/library/hh134614(v=office.14).aspx
39. Tools and Utilities
LinqPad – Learn ODATA Queries with Linq
http://www.linqpad.net/
RESTClient – Java Application for Testing REST Programming
https://code.google.com/p/rest-client/
CAML Designer for SharePoint 2010 and 2013
http://sharepoint.biwug.be/SitePages/Caml_Designer.aspx
Fiddler – HTTP Debugger
http://www.fiddler2.com/fiddler2/
SharePoint 2013 Search Query Tool
http://sp2013searchtool.codeplex.com/
40. Questions
Thank you for attending!
Please complete your
evaluations. Your feedback is
appreciated
chris.beckett@obeflow.com
(425) 522-3727
@sharepointbits
blog.sharepointbits.com