Understanding the REST API of SharePoint 2013
Upcoming SlideShare
Loading in...5
×
 

Understanding the REST API of SharePoint 2013

on

  • 764 views

Presented by Paolo Pialorsi at SharePoint Saturday Stockholm 2014 ...

Presented by Paolo Pialorsi at SharePoint Saturday Stockholm 2014

See also http://www.spsstockholm.com/2014/session/understanding-the-rest-api-of-sharepoint-2013/

From a developer perspective, one of the most important new features introduced in Microsoft SharePoint 2013 is the REST API. In this session, you learn about the architecture of the REST API, the main and most useful endpoints, and you see a bunch of real-life usage samples to leverage the API in your SharePoint Apps. To attend this session you should have a good understanding of developing SharePoint Apps.

Statistics

Views

Total Views
764
Views on SlideShare
731
Embed Views
33

Actions

Likes
0
Downloads
9
Comments
0

1 Embed 33

http://www.spsstockholm.com 33

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Understanding the REST API of SharePoint 2013 Understanding the REST API of SharePoint 2013 Presentation Transcript

  • Understanding the REST API of SharePoint 2013 #SPSSTHLM17 Paolo Pialorsi – paolo@pialorsi.com January 25th, 2014 SharePoint Saturday Stockholm
  • Gold SharePint Bronze Raffle
  • Agenda
  • _api is new alias for _vti_bin/client.svc Server Client REST OData JSON CSOM JavaScript Library Silverlight Library Custom Client Code .Net CLR Library
  • Web Application Hostname API Namespace http(s)://{Host Name}/{site}/_api/{namespace}/ {object} {property} {indexer(index)} {method({parameter},{parameter},…)} Site Collection (Optional) Operation
  • Operator Description Example eq Equal /Suppliers?$filter=Address/City eq 'Redmond' ne Not equal /Suppliers?$filter=Address/City ne 'London' gt Greater than /Products?$filter=Price gt 20 ge Greater than or equal /Products?$filter=Price ge 10 lt Less than /Products?$filter=Price lt 20 le Less than or equal /Products?$filter=Price le 100 and Logical and /Products?$filter=Price le 200 and Price gt 3.5 or Logical or /Products?$filter=Price le 3.5 or Price gt 200 not Logical negation /Products?$filter=not endswith(Description,'milk')
  • Operator Description Example add Addition /Products?$filter=Price add 5 gt 10 sub Subtraction /Products?$filter=Price sub 5 gt 10 mul Multiplication /Products?$filter=Price mul 2 gt 2000 div Division /Products?$filter=Price div 2 gt 4 mod Modulo /Products?$filter=Price mod 2 eq 0
  • Function Description bool substringof(string searchString, string searchInString) Returns a boolean value stating if the value provided in the first argument is a substring of substringof('Alfreds',CompanyName) the second argument. Can be used as a replacement for the contains method. bool endswith(string string, string suffixString) Returns a boolean value declaring if the string endswith(CompanyName,'Futterkiste') provided in the first argument ends with the string provided in the second argument. bool startswith(string string, string prefixString) Returns a boolean value declaring if the string provided in the first argument starts with the startswith(CompanyName,'Alfr') string provided in the second argument. int length(string string) Returns an integer value representing the length of the string provided as argument. int indexof(string searchInString, string searchString) string replace(string searchInString, string searchString, string replaceString) string substring(string string, int pos) Example length(CompanyName) eq 19 Returns an integer value representing the index of the string provided in the second indexof(CompanyName,'lfreds') eq 1 argument, which is searched within the string provided in the first argument. Replaces the string provided in the second argument with the string provided in the third replace(CompanyName,' ', '') eq 'AlfredsFutterkiste' argument, searching within the first string argument. Returns a substring of the string provided in the first argument, starting from the integer position provided in the second argument. substring(CompanyName,1) eq 'lfreds Futterkiste'
  • Function Description string substring(string string, int pos, int length) Returns a substring of the string provided in the first argument, starting from the integer position provided in the second argument and substring(CompanyName,1, 2) eq 'lf' stopping after a number of characters provided in the third integer argument. string tolower(string string) string toupper(string string) Returns a string that is the lowercase conversion of the string provided as the string argument Returns a string that is the uppercase conversion of the string provided as the string argument Example tolower(CompanyName) eq 'alfreds futterkiste' tolower(CompanyName) eq 'alfreds futterkiste' string trim(string string) Returns a string trimmed from spaces, based on the string provided as argument. trim(CompanyName) eq 'Alfreds Futterkiste' string concat(string string1, string string2) Returns a string that is the concatenation of the two string arguments provided. concat(concat(City,', '), Country) eq 'Berlin, Germany' int day(DateTime datetimeValue) int hour(DateTime datetimeValue) int minute(DateTime datetimeValue) int month(DateTime datetimeValue) Returns an integer that corresponds to the day of the datetime value provided as argument. Returns an integer that corresponds to the hours of the datetime value provided as argument. Returns an integer that corresponds to the minutes of the datetime value provided as argument. Returns an integer that corresponds to the month of the datetime value provided as argument. day(BirthDate) eq 8 hour(BirthDate) eq 1 minute(BirthDate) eq 0 month(BirthDate) eq 12
  • Function int second(DateTime datetimeValue) int year(DateTime datetimeValue) double round(double doubleValue) decimal round(decimal decimalValue) double floor(double doubleValue) decimal floor(decimal datetimeValue) double ceiling(double doubleValue) decimal ceiling(decimal datetimeValue) Description Returns an integer that corresponds to the seconds of the datetime value provided as argument. Returns an integer that corresponds to the year of the datetime value provided as argument. Returns a double number that is the rounded value of the double value provided as argument. Returns a decimal number that is the rounded value of the decimal value provided as argument. Returns a double number that is the floor value of the double value provided as argument. Returns a decimal number that is the floor value of the decimal value provided as argument. Returns a double number that is the ceiling value of the double value provided as argument. Returns a decimal number that is the ceiling value of the decimal value provided as argument. Example second(BirthDate) eq 0 year(BirthDate) eq 1948 round(Freight) eq 32 round(Freight) eq 32 floor(Freight) eq 32 floor(Freight) eq 32 ceiling(Freight) eq 33 ceiling(Freight) eq 33 bool IsOf(type value) Returns a boolean value stating if the target entity is of the type provided as argument. bool IsOf(expression value, type targetType) Returns a boolean value stating if the isof(ShipCountry,'Edm.String') expression provided as the first argument, is of the type provided as the second argument. isof('NorthwindModel.Order')
  • http://devbook.sp2013.local/_api/web/lists/GetByTitle(Documents')/RootFol der/Files?$expand=Author&$select=Name,Author,TimeLastModified& $orderby=TimeLastModified%20desc,Name&$skip=20&$top=10& $filter=substringof('Chapter',Name)%20eq%20true Query Part Explanation $expand=Author Expands the related object Author, while retrieving the documents. $select=Name,Author,TimeLastModified Retrieves the fields Name, Author, and TimeLastModified. $sort=TimeLastModified desc,Name Sorts the output descending by TimeLastModified, and ascending by Name. $skip=20 Skips the first 20 items of the resultset (i.e. the first two pages of 10 items). $top=10 Retrieves only the first 10 items of the resultset (i.e. the third page of 10 items). $filter= substringof('Chapter',Name) eq true Retrieves only files with a file name that contains the literla "Chapter".
  • { } "d": { "GetContextWebInformation": { "__metadata": { "type":"SP.ContextWebInformation" }, "FormDigestTimeoutSeconds":1800, "FormDigestValue":"0x8B48E76BAF6C86A17CCEC50F9A29E7CBB85816B883417C52C10C67 FB19760517B774CD71E43517635386DE585E92A0262779824E5E0C7ECA905436A048AC85AC, 08 Jan 2013 01:11:57 -0000", "LibraryVersion":"15.0.4420.1017", "SiteFullUrl":"http://devbook.sp2013.local", "SupportedSchemaVersions": { "results": [ "14.0.0.0", "15.0.0.0" ] }, "WebFullUrl":"http://devbook.sp2013.local" } }
  • SP.RequestExecutor.j s 2) Emit IFrame App Web 3) Download proxy page IFrame (AppWebProxy.ASPX) 6) Get data back to app 4) Make REST/CSOM call 5) Get response data Host Web
  • jQuery.ajax({ url: "http://hostname/_api/contextinfo", type: "POST", headers: { "Authorization": "Bearer " + accessToken, "accept": "application/json;odata=verbose", "contentType": "text/xml" }, })