Understanding and programming the SharePoint REST API

download Understanding and programming the SharePoint REST API

of 40

  • date post

    05-Dec-2014
  • Category

    Technology

  • view

    6.612
  • download

    6

Embed Size (px)

description

In this presentation I introduce the SharePoint REST API for SharePoint 2010 and 2013 and how to get started programming with ODATA and REST.

Transcript of Understanding and programming the SharePoint REST API

  • 1. chris.beckett@obeflow.com www.obeflow.com (425) 522-3727 Enterprise Content Management and Business Process Automation Software as a Service Understanding and Programming the SharePoint REST API
  • 2. About Chris Beckett 24+10 MCM MCT MCSE MCPD Entrepreneur Solutions Architect Systems Engineer Trainer and Author chris.beckett@obeflow.com @sharepointbits blog.sharepointbits.com
  • 3. Agenda Introduction to SharePoint Web Services Working with REST and ODATA Services Programming with the REST API
  • 4. Agenda Introduction to SharePoint Web Services Working with REST and ODATA Services Programming with the REST API
  • 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:///_vti_bin/search.asmx User Profiles http:///_vti_bin/userprofileservice.asmx Sites http:///_vti_bin/sites.asmx Lists http:///_vti_bin/lists.asmx Permissions http:///_vti_bin/permissions.asmx Copy http:///_vti_bin/copy.asmx 31 Public Web Services (25+6) in SharePoint
  • 12. SOAP Request Message Format SOAP Envelope SOAP Body Method and Parameters
  • 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
  • 15. CSOM Architecture
  • 16. CSOM (.NET) Create a Context Load the Context Execute Query Access Properties
  • 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
  • 21. Data Encoding - ATOMPUB
  • 22. Data Encoding - JSON
  • 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
  • 25. Agenda Introduction to SharePoint Web Services Working with REST and ODATA Services Programming with the REST API
  • 26. ODATA Operations and Parameters GET (Retrieve) POST (Create) PUT (Update All Fields) DELETE (Delete) MERGE (Update Specific) $filter={simple predicate} $expand={Entity} $order by={property} $skip={n} $top={n} $metadata Operations Parameters
  • 27. ODATA Query Operators Area Supported Not Supported Numeric Comparisons Lt, Le Gt, Ge Eq, Ne add, sub, mul, div, mod round, floor, ceiling String Comparisons startsWith substringof Eq Ne endsWith, trim substring, replace, concat tolower, toupper Date and Time Functions day(), month(), year() hour(), minute(), second() DateTimeRangesOverlap
  • 28. Querying with ODATA $Top and $Skip $Filter $Select $OrderBy $Expand
  • 29. Agenda Introduction to SharePoint Web Services Working with REST and ODATA Services Programming with the REST API
  • 30. Programming Tools / Platforms C++ C# VB.NET PHP Java Datajs jQuery Sencha Rest Connector JayData RequestExecutor Compiled Languages JavaScript Libraries
  • 31. 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
  • 32. Client REST Ser