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




                                 By: Hilton Giesenow
                                       Experts Inside
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')
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
Why REST?
REST Service Style
Client-Side OM
         Dev

        Dev Skill

Strong Typing (?)

    WinRT Apps
QoS
Connectivity

                                    Security
  Latency




            Calling Long Distance
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
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
Advanced Topics
    More on Paging
        Social Safety
       Async in .Net
           Batching
 Paging & Counting
Relationships in .Net

More Related Content

Viewers also liked

Medical Library Experience
Medical Library ExperienceMedical Library Experience
Medical Library Experiencejanathompkins
 
BlueWave Mobile - Creating Mobile Relevance
BlueWave Mobile - Creating Mobile RelevanceBlueWave Mobile - Creating Mobile Relevance
BlueWave Mobile - Creating Mobile RelevanceBlueWave1
 
Legal Studies 'Federal Election 2010'
Legal Studies 'Federal Election 2010'Legal Studies 'Federal Election 2010'
Legal Studies 'Federal Election 2010'kabbott123
 
Liz and Fred’s 2010 European Vacation
Liz and Fred’s 2010 European VacationLiz and Fred’s 2010 European Vacation
Liz and Fred’s 2010 European Vacation1birdman
 
Creating a Music Catalog
Creating a Music CatalogCreating a Music Catalog
Creating a Music Catalogjanathompkins
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Viewers also liked (9)

Advert
AdvertAdvert
Advert
 
Pawer point
Pawer pointPawer point
Pawer point
 
Medical Library Experience
Medical Library ExperienceMedical Library Experience
Medical Library Experience
 
BlueWave Mobile - Creating Mobile Relevance
BlueWave Mobile - Creating Mobile RelevanceBlueWave Mobile - Creating Mobile Relevance
BlueWave Mobile - Creating Mobile Relevance
 
Legal Studies 'Federal Election 2010'
Legal Studies 'Federal Election 2010'Legal Studies 'Federal Election 2010'
Legal Studies 'Federal Election 2010'
 
Liz and Fred’s 2010 European Vacation
Liz and Fred’s 2010 European VacationLiz and Fred’s 2010 European Vacation
Liz and Fred’s 2010 European Vacation
 
Creating a Music Catalog
Creating a Music CatalogCreating a Music Catalog
Creating a Music Catalog
 
Buku jvv jilid 1 ok
Buku jvv jilid 1 okBuku jvv jilid 1 ok
Buku jvv jilid 1 ok
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

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

SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechCon
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechConSharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechCon
SharePoint Data Anywhere and Everywhere by Chris Beckett - SPTechConSPTechCon
 
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworksukdpe
 
Toronto Share Point Camp 2009 Social Computing With Share Point & Silverlig...
Toronto Share Point Camp 2009   Social Computing With Share Point & Silverlig...Toronto Share Point Camp 2009   Social Computing With Share Point & Silverlig...
Toronto Share Point Camp 2009 Social Computing With Share Point & Silverlig...Andy Nogueira
 
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...Chris Richardson
 
C# Client to Cloud
C# Client to CloudC# Client to Cloud
C# Client to CloudStuart Lodge
 
Becoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityBecoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityBui Kiet
 
Becoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityBecoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityMuleSoft
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaAraf Karsh Hamid
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFRoy Braam
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to findDan Diephouse
 
Cloud Modernization and Data as a Service Option
Cloud Modernization and Data as a Service OptionCloud Modernization and Data as a Service Option
Cloud Modernization and Data as a Service OptionDenodo
 
Data Collection & Caching using redis | Swatantra Kumar
Data Collection & Caching using redis | Swatantra KumarData Collection & Caching using redis | Swatantra Kumar
Data Collection & Caching using redis | Swatantra KumarSwatantra Kumar
 
Technology Overview
Technology OverviewTechnology Overview
Technology OverviewLiran Zelkha
 
Enabling Mainframe Assets for API Economy with z?OS Connect EE
Enabling Mainframe Assets for API Economy with z?OS Connect EEEnabling Mainframe Assets for API Economy with z?OS Connect EE
Enabling Mainframe Assets for API Economy with z?OS Connect EEKatarzyna Wanat
 
Cloud Connectivity Service
Cloud Connectivity ServiceCloud Connectivity Service
Cloud Connectivity Servicejhpark
 
Azure Administration.docx
Azure  Administration.docxAzure  Administration.docx
Azure Administration.docxFuturepoint13
 
Microsoft Azure Websites for PHP Developers
Microsoft Azure Websites for PHP DevelopersMicrosoft Azure Websites for PHP Developers
Microsoft Azure Websites for PHP DevelopersCory Fowler
 

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

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

Recently uploaded

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

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

  • 1. Getting Enough REST? The SharePoint 2013 OData Services By: Hilton Giesenow Experts Inside
  • 2.
  • 3.
  • 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')
  • 13.
  • 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
  • 16.
  • 17. Why REST? REST Service Style Client-Side OM Dev Dev Skill Strong Typing (?) WinRT Apps
  • 18.
  • 19. QoS Connectivity Security Latency Calling Long Distance
  • 20.
  • 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‟
  • 27.
  • 28.
  • 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
  • 32.
  • 33.
  • 34. Advanced Topics More on Paging Social Safety Async in .Net Batching Paging & Counting Relationships in .Net

Editor's Notes

  1. Good resource: http://msdn.microsoft.com/en-us/library/fp142385.aspx
  2. Client-Side OMKinda-like SOM3 Versions.NetJSSilverlightREST/ODataStandards-basedOpen to anyoneWidely known
  3. 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
  4. Client-Side OMKinda-like SOM3 Versions.NetJSSilverlightREST/ODataStandards-basedOpen to anyoneWidely known
  5. 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!
  6. $inlinecount=allpages, $skip, $take, $format=json, $concat, $metadatahttp://schemas.microsoft.com/ado/2007/08/dataservices/related/Contact
  7. But sometimes, nothing beats knowing how to use something properly…
  8. Limit RowsLimit ColumnsSome effectsLimit CallsCaching (do your own)“Expand”BatchingFool the UserAsync
  9. (Can be tunneled in POST commands)
  10. Uses “Etags”
  11. ConcurrencyMERGE vs. PUT
  12. Joke slide – nothing of value here