SlideShare a Scribd company logo
Getting Enough REST?
The SharePoint 2013 OData Services




                                 By: Hilton Giesenow
                                       Experts Inside
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
Server OM: an Open Playing Field
Remote Access
SharePoint 2007 Web Services
1.    Alerts                          13.   Forms Services Web service       27. Search Web service
2.    Area Web service                14.   Imaging Web service              28. Users and Groups Web service
3.    Authentication Web service      15.   Lists Web service                29. User Profile Change Web
4.    BDC Fields Resolver Web         16.   Meetings Web service                 service
      service                         17.   Official File Web service        30. User Profile Web service
5.    BDC Web service                 18.   People Web service               31. Versions Web service
6.    CMS Content Area Toolbox        19.   Permissions Web service          32. Views Web service
      Info Web service                20.   Published Links Web service      33. Web Part Pages Web service
7.    Copy Web service                21.   Publishing Service Web service   34. Webs Web service
8.    List Data Retrieval Web service 22.   Search Web service               35. Workflow Web service
9.    Document Workspace Web          23.   SharePoint Directory
      service                               Management Web service
10.   Excel Services Web service      24.   Sites Web service
11.   Forms Web service               25.   Slide Library Web service
12.   Forms Services proxy Web        26.   Search Crawl Web service
      service
So it Was “All Good”?




   What do YOU think?
SOAP




    SharePoint Developer

SOAP is BLOATED
public Client GetClientByID (int id)




SOAP Is Limiting
public XMLGoo GetListItems (XMLGoo)
Why re-invent the wheel?
REST Service
Client-Side OM
http://myservice/Customers
    http://myservice/Customers(„ALFKI‟)
    http://myservice/Customers(„ALFKI‟)/Orders(3)/Price

http://myservice/Customers?$filter=startswith(FirstName,'H')
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
REST
CSOM




       Which One to Choose?
User
           Search     Taxonomy      Feeds   Publishing    Lists
Profiles



                                                         Business
Sharing    Workflow   E-Discovery   IRM     Analytics
                                                           Data




                The 2013 “Merger”: Client.svc
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
Why REST?
REST Service Style
Client-Side OM
         Dev

        Dev Skill

Strong Typing (?)

    WinRT Apps
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
QoS
Connectivity

                                    Security
  Latency




            Calling Long Distance
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
Perf Tip #1: Limit the data
Perf Tip #2: Limit the calls
Perf Tip #3: Fool the User
Operation    HTTP Method
Read         GET
Create       POST
Update       PUT / MERGE / PATCH
Delete       Delete




Writing Back - CrUD
X-RequestDigest
 0x4D788385666FD5F9EF30EF3B61A1208C68626B72CBB82FA4DDE4A9
 5EE4618A589DB21AC810F05D2507A0FACBDD6C250FB20362320A3F7
 CD1ED74A8B4606FDA36,04 Feb 2013 13:22:52 -0000



Form Digest: Keeping out the „Riff-Raff‟
Optimistic Concurrency
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
OAuth in Office 365
                                                              1


                                                              2


                                                              3
                SharePoint 2013
                Content Server                                4
           1                      2

           4                      3                           5


End User                              Authentication Server
                                                              6
                     8   9



           5                      6                           7
                  Client App
           10                     7
                                                              8




                                                              9




                                                              10
Cross-Domain Queries
Key Takeaways
                   SOAP / CSOM   REST
                                          Other options
                                              ASMX, CSOM
                                             Roll-your-own




Going back                              Know your stack!
CrUD - Digest                                     Payload
Concurrency                                   Limiting calls
                                                     Async
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services
Advanced Topics
    More on Paging
        Social Safety
       Async in .Net
           Batching
 Paging & Counting
Relationships in .Net

More Related Content

PPT
Cics Web 2.0 With Atom Feeds And Php
PPTX
Wcf and its features
PDF
Understanding Web services
PPSX
WCF LOB SDK from CodeMastery
PDF
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
PPSX
WCF LOB SDK at CNUG
PPTX
WCF Introduction
PPTX
Presentazione Sharepoint 2010
Cics Web 2.0 With Atom Feeds And Php
Wcf and its features
Understanding Web services
WCF LOB SDK from CodeMastery
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
WCF LOB SDK at CNUG
WCF Introduction
Presentazione Sharepoint 2010

Viewers also liked (9)

PDF
Advert
PDF
Pawer point
PPTX
Medical Library Experience
PPT
BlueWave Mobile - Creating Mobile Relevance
PPTX
Legal Studies 'Federal Election 2010'
PPT
Liz and Fred’s 2010 European Vacation
PPTX
Creating a Music Catalog
PDF
Buku jvv jilid 1 ok
PDF
Study: The Future of VR, AR and Self-Driving Cars
Advert
Pawer point
Medical Library Experience
BlueWave Mobile - Creating Mobile Relevance
Legal Studies 'Federal Election 2010'
Liz and Fred’s 2010 European Vacation
Creating a Music Catalog
Buku jvv jilid 1 ok
Study: The Future of VR, AR and Self-Driving Cars
Ad

Similar to Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services (20)

PPTX
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechCon
PDF
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
PDF
Toronto Share Point Camp 2009 Social Computing With Share Point & Silverlig...
PDF
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
PDF
C# Client to Cloud
PDF
Becoming a Connected Insurer With API-led Connectivity
PDF
Becoming a Connected Insurer With API-led Connectivity
PPTX
Microservices Part 3 Service Mesh and Kafka
PPTX
StrongLoop Overview
PPTX
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
PPTX
Net Services
PPTX
A great api is hard to find
PDF
Cloud Modernization and Data as a Service Option
PPT
Data Collection & Caching using redis | Swatantra Kumar
PPT
Technology Overview
PDF
Enabling Mainframe Assets for API Economy with z?OS Connect EE
PPT
Cloud Connectivity Service
DOCX
Azure Administration.docx
PPTX
Microsoft Azure Websites for PHP Developers
PPTX
DevCon5 (July 2014) - Acision SDK
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechCon
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Toronto Share Point Camp 2009 Social Computing With Share Point & Silverlig...
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
C# Client to Cloud
Becoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led Connectivity
Microservices Part 3 Service Mesh and Kafka
StrongLoop Overview
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Net Services
A great api is hard to find
Cloud Modernization and Data as a Service Option
Data Collection & Caching using redis | Swatantra Kumar
Technology Overview
Enabling Mainframe Assets for API Economy with z?OS Connect EE
Cloud Connectivity Service
Azure Administration.docx
Microsoft Azure Websites for PHP Developers
DevCon5 (July 2014) - Acision SDK
Ad

Recently uploaded (20)

PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Hybrid model detection and classification of lung cancer
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Zenith AI: Advanced Artificial Intelligence
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Tartificialntelligence_presentation.pptx
PDF
Mushroom cultivation and it's methods.pdf
PDF
August Patch Tuesday
PDF
A comparative study of natural language inference in Swahili using monolingua...
Hindi spoken digit analysis for native and non-native speakers
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
Hybrid model detection and classification of lung cancer
Unlocking AI with Model Context Protocol (MCP)
Web App vs Mobile App What Should You Build First.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Zenith AI: Advanced Artificial Intelligence
OMC Textile Division Presentation 2021.pptx
Encapsulation_ Review paper, used for researhc scholars
cloud_computing_Infrastucture_as_cloud_p
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
A comparative analysis of optical character recognition models for extracting...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Tartificialntelligence_presentation.pptx
Mushroom cultivation and it's methods.pdf
August Patch Tuesday
A comparative study of natural language inference in Swahili using monolingua...

Getting Enough REST? Understanding the SharePoint 2013 REST / ODATA Services

  • 1. Getting Enough REST? The SharePoint 2013 OData Services By: Hilton Giesenow Experts Inside
  • 4. Server OM: an Open Playing Field
  • 6. SharePoint 2007 Web Services 1. Alerts 13. Forms Services Web service 27. Search Web service 2. Area Web service 14. Imaging Web service 28. Users and Groups Web service 3. Authentication Web service 15. Lists Web service 29. User Profile Change Web 4. BDC Fields Resolver Web 16. Meetings Web service service service 17. Official File Web service 30. User Profile Web service 5. BDC Web service 18. People Web service 31. Versions Web service 6. CMS Content Area Toolbox 19. Permissions Web service 32. Views Web service Info Web service 20. Published Links Web service 33. Web Part Pages Web service 7. Copy Web service 21. Publishing Service Web service 34. Webs Web service 8. List Data Retrieval Web service 22. Search Web service 35. Workflow Web service 9. Document Workspace Web 23. SharePoint Directory service Management Web service 10. Excel Services Web service 24. Sites Web service 11. Forms Web service 25. Slide Library Web service 12. Forms Services proxy Web 26. Search Crawl Web service service
  • 7. So it Was “All Good”? What do YOU think?
  • 8. SOAP SharePoint Developer SOAP is BLOATED
  • 9. public Client GetClientByID (int id) SOAP Is Limiting
  • 11. Why re-invent the wheel? REST Service Client-Side OM
  • 12. http://myservice/Customers http://myservice/Customers(„ALFKI‟) http://myservice/Customers(„ALFKI‟)/Orders(3)/Price http://myservice/Customers?$filter=startswith(FirstName,'H')
  • 14. REST CSOM Which One to Choose?
  • 15. User Search Taxonomy Feeds Publishing Lists Profiles Business Sharing Workflow E-Discovery IRM Analytics Data The 2013 “Merger”: Client.svc
  • 17. Why REST? REST Service Style Client-Side OM Dev Dev Skill Strong Typing (?) WinRT Apps
  • 19. QoS Connectivity Security Latency Calling Long Distance
  • 21. Perf Tip #1: Limit the data
  • 22. Perf Tip #2: Limit the calls
  • 23. Perf Tip #3: Fool the User
  • 24. Operation HTTP Method Read GET Create POST Update PUT / MERGE / PATCH Delete Delete Writing Back - CrUD
  • 25. X-RequestDigest 0x4D788385666FD5F9EF30EF3B61A1208C68626B72CBB82FA4DDE4A9 5EE4618A589DB21AC810F05D2507A0FACBDD6C250FB20362320A3F7 CD1ED74A8B4606FDA36,04 Feb 2013 13:22:52 -0000 Form Digest: Keeping out the „Riff-Raff‟
  • 29. OAuth in Office 365 1 2 3 SharePoint 2013 Content Server 4 1 2 4 3 5 End User Authentication Server 6 8 9 5 6 7 Client App 10 7 8 9 10
  • 31. Key Takeaways SOAP / CSOM REST Other options ASMX, CSOM Roll-your-own Going back Know your stack! CrUD - Digest Payload Concurrency Limiting calls Async
  • 34. Advanced Topics More on Paging Social Safety Async in .Net Batching Paging & Counting Relationships in .Net

Editor's Notes

  • #2: Good resource: http://msdn.microsoft.com/en-us/library/fp142385.aspx
  • #12: Client-Side OMKinda-like SOM3 Versions.NetJSSilverlightREST/ODataStandards-basedOpen to anyoneWidely known
  • #14: Demo Reminder Script:Explain ListData.svcvsClient.svcOpen browser to listdata.svcShow lists -> one list -> one list item -> one field (CreatedBy)Show Query - $filter=StartsWith(Title,’[X]’)Show SelectShow OrderByShow Fiddler (JSON - application/json;odata=verbose)Show Client.svc/_vti_bin/client.svc -> /_api_api/web/getAvailableWebTemplates(1033)_api/social.following/my/Followed(types=4)C# Proxy - uses “LINQ TO WCF Data Services”Generating proxyWhere,OrderByJS Example – basic, then more complex
  • #15: Client-Side OMKinda-like SOM3 Versions.NetJSSilverlightREST/ODataStandards-basedOpen to anyoneWidely known
  • #16: Good:MUCH larger footprint, ESPECIALLY for REST service More MS Investment? One less “moving part”? New API for WPhoneBad: Not like-for-like (CSOM still does more, like Taxonomy fields) Less “RESTful” no $metadata (for now?) NO LONGER STANDARDS COMPLIANT!
  • #17: $inlinecount=allpages, $skip, $take, $format=json, $concat, $metadatahttp://schemas.microsoft.com/ado/2007/08/dataservices/related/Contact
  • #19: But sometimes, nothing beats knowing how to use something properly…
  • #21: Limit RowsLimit ColumnsSome effectsLimit CallsCaching (do your own)“Expand”BatchingFool the UserAsync
  • #25: (Can be tunneled in POST commands)
  • #27: Uses “Etags”
  • #28: ConcurrencyMERGE vs. PUT
  • #29: Joke slide – nothing of value here