gd-sprest 3.2.0

This SharePoint 2013+ javascript library is designed to easily interact with the SharePoint REST api.

There is a newer version of this package available.
See the version list below for details.
Install-Package gd-sprest -Version 3.2.0
dotnet add package gd-sprest --version 3.2.0
<PackageReference Include="gd-sprest" Version="3.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add gd-sprest --version 3.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

SharePoint Online/On-Premise REST Framework

Overview:

The SharePoint REST Framework was designed for SharePoint 2013, but works in both SharePoint 2013/2016 and Office 365. This framework is designed to remove the overhead of SharePoint development, allowing the developer to focus on the client requirements. A reference to the associated github projects are listed below:

gd-sprest vs pnp-js-core

The gd-sprest library is similar to the pnp-js-core, with the main difference being the ability to be used within the browser console window. This feature provides a "Powershell-Like" experience within the browser console window. Some reasons to use this functionality:

  • No access to the server farm
  • Ability to create scripts which can be tested in staging before running aginst production
  • For more efficient development of code, the developer has the ability to test code requests without having to deploy the solution
  • Easy way to perform research and development by exploring the REST API with the available intellisense

Bugs/Feature Requests/Help

Click Here to report any bugs, request any new features or if need help with code examples. Pull requests are welcomed for anyone interested in submitting them. Feel free to email for other questions.

Security

The REST api execute requests based on the user's permissions. There is no way to elevate priviledges requests against the SharePoint REST.

Get Started

Packages

NPM

Add the npm package to your project:

npm --save install gd-sprest
Yarn

Add the package from yarn:

yarn add gd-sprest

Code Examples

JavaScript
var $REST = require("gd-sprest");

// Get the current web and lists
$REST.Web().query({
    Expand: ["Lists"]
}).execute(function(web) {
    // Parse the lists
    for(var i=0; i<web.Lists.results.length; i++) {
        var list = web.Lists.results[i];
    }
});
NodeJS
const $REST = require("gd-sprest);

// Create a new generic list.
request = $REST.Web("https://dev.sharepoint.com")
    .Lists().add({
        BaseTemplate: $REST.SPTypes.ListTemplateType.GenericList,
        Title: "New List"
    });

// Log the request information
console.log(request.getInfo());

// Console Output:
// {
//     data: '{"BaseTemplate":100,"Title":"New List","__metadata":{"type":"SP.List"}}',
//     method: 'POST',
//     url: 'https://dev.sharepoint.com'
// }
TypeScript
import { List }

// Get the "Site Assets" library, fields and views
(new List("Site Assets"))
    // Query the list
    .query({
        Expand: ["Fields", "Views"]
    })
    // Execute the request
    .execute((list) => {
        // Parse the fields
        for(let i=0; i<list.Fields.results.length; i++) {
            let field = list.Fields.results[i];
        }

        // Parse the views
        for(let i=0; i<list.Views.results.length; i++) {
            let field = list.Views.results[i];
        }
    });

Development

Add-In Model

The add-in model uses the app web for SharePoint Hosted Apps/Add-Ins. The provider hosted model would use CSOM, and not this library. This framework has built-in helper methods and a global flag for determining which web the request should execute against Host vs App/Add-In. The request will be automatically updated based on the target web, so there is no additional code required from the developer. This allows the developer to create a single source of code that works against both the SharePoint and App/Add-In webs.

Available Libraries

import {
    $REST,
    ContextInfo,
    Helper,
    List,
    Navigation,
    PeopleManager,
    PeoplePicker,
    ProfileLoader,
    RequestType,
    Search,
    Site,
    SocialFeed,
    SPTypes,
    Types,
    UserProfile,
    Utility,
    Web
} from "gd-sprest";

Automation

The "SharePoint Configuration" class allows the developer to define configuration files for the SharePoint solution. This class contains built-in methods for execution (install, uninstall, etc), so there is no need to write additional code.

Helper

The Helper class contains the following classes

  • App - Helper methods when developing within an app web
  • Dependencies - Loads the required SharePoint scripts
  • Field - Generates field schema xml
  • JSLink - Helper class for creating JSLink solutions
  • ListForm - Helper class for creating custom list forms
  • ListFormField - Helper class for custom list forms
  • parse - Parse method to convert the stringified value to a base object
  • SPCfg - Helper class for creating SharePoint assets and configuration scripts
  • Taxonomy - Helper class for getting terms from the managed metadata taxonomy term store
  • WebParts - Helper class for creating webpart solutions

Intellisense

One of the more important features of this framework is the intellisense. The classes have been setup to ensure the developer does not need to define the output type of the request. The "Types" and "SPTypes" classes can both be imported into the project. The "Types" class includes allows of the interfaces available in the library. The "SPTypes" class contains all of the enumerators in SharePoint. These interfaces can be used to provide intellisense for the custom variables.

Modern Experience in SharePoint 2013

The gd-sprest-react library contains SharePoint components:

  • Field
  • Item Form
  • Panel
  • People Picker
  • WebParts
    These components use the office fabric ui, to provide an Office 365 experience within SharePoint 2013.
Upgrade Path to SharePoint Framework

The react components developed for SharePoint 2013 can be ported over to the SharePoint Framework's modern webpart.

WebParts

The webpart component allows the developer to easialy assign react components to be rendered based on the page's state (Display/Edit). This component currently supports webpart, publishing and wiki pages. The following webpart components are available:

  • Configuration - A react component to be used when the page is being edited, displaying an "Edit Configuration" button to render a panel for custom webpart properties.
    • List Configuration - Inherits the configuration webpart, displaying a web url and list dropdown.
    • Field Configuration - Inherits the list configuration webpart, adding a field picker.
    • Search Configuration - Inherits the field configuration webpart, filtering the field picker to field types supported by the search webpart.
  • List - Allows the developer to define an OData or CAML query, and contains two methods:
    • onRenderContainer - Optional method with the query results passed as the input parameter.
    • onRenderItem - Requires method with the item result passed as the input parameter.
  • Search - Inherits the list webpart, adding a search textbox. Based on the configuration fields, a mapper is created based on the item data. This feature will automatically filter the items displayed.
  • Tabs - Displays all associated webparts within the same zone in tabs.

SharePoint Online/On-Premise REST Framework

Overview:

The SharePoint REST Framework was designed for SharePoint 2013, but works in both SharePoint 2013/2016 and Office 365. This framework is designed to remove the overhead of SharePoint development, allowing the developer to focus on the client requirements. A reference to the associated github projects are listed below:

gd-sprest vs pnp-js-core

The gd-sprest library is similar to the pnp-js-core, with the main difference being the ability to be used within the browser console window. This feature provides a "Powershell-Like" experience within the browser console window. Some reasons to use this functionality:

  • No access to the server farm
  • Ability to create scripts which can be tested in staging before running aginst production
  • For more efficient development of code, the developer has the ability to test code requests without having to deploy the solution
  • Easy way to perform research and development by exploring the REST API with the available intellisense

Bugs/Feature Requests/Help

Click Here to report any bugs, request any new features or if need help with code examples. Pull requests are welcomed for anyone interested in submitting them. Feel free to email for other questions.

Security

The REST api execute requests based on the user's permissions. There is no way to elevate priviledges requests against the SharePoint REST.

Get Started

Packages

NPM

Add the npm package to your project:

npm --save install gd-sprest
Yarn

Add the package from yarn:

yarn add gd-sprest

Code Examples

JavaScript
var $REST = require("gd-sprest");

// Get the current web and lists
$REST.Web().query({
    Expand: ["Lists"]
}).execute(function(web) {
    // Parse the lists
    for(var i=0; i<web.Lists.results.length; i++) {
        var list = web.Lists.results[i];
    }
});
NodeJS
const $REST = require("gd-sprest);

// Create a new generic list.
request = $REST.Web("https://dev.sharepoint.com")
    .Lists().add({
        BaseTemplate: $REST.SPTypes.ListTemplateType.GenericList,
        Title: "New List"
    });

// Log the request information
console.log(request.getInfo());

// Console Output:
// {
//     data: '{"BaseTemplate":100,"Title":"New List","__metadata":{"type":"SP.List"}}',
//     method: 'POST',
//     url: 'https://dev.sharepoint.com'
// }
TypeScript
import { List }

// Get the "Site Assets" library, fields and views
(new List("Site Assets"))
    // Query the list
    .query({
        Expand: ["Fields", "Views"]
    })
    // Execute the request
    .execute((list) => {
        // Parse the fields
        for(let i=0; i<list.Fields.results.length; i++) {
            let field = list.Fields.results[i];
        }

        // Parse the views
        for(let i=0; i<list.Views.results.length; i++) {
            let field = list.Views.results[i];
        }
    });

Development

Add-In Model

The add-in model uses the app web for SharePoint Hosted Apps/Add-Ins. The provider hosted model would use CSOM, and not this library. This framework has built-in helper methods and a global flag for determining which web the request should execute against Host vs App/Add-In. The request will be automatically updated based on the target web, so there is no additional code required from the developer. This allows the developer to create a single source of code that works against both the SharePoint and App/Add-In webs.

Available Libraries

import {
    $REST,
    ContextInfo,
    Helper,
    List,
    Navigation,
    PeopleManager,
    PeoplePicker,
    ProfileLoader,
    RequestType,
    Search,
    Site,
    SocialFeed,
    SPTypes,
    Types,
    UserProfile,
    Utility,
    Web
} from "gd-sprest";

Automation

The "SharePoint Configuration" class allows the developer to define configuration files for the SharePoint solution. This class contains built-in methods for execution (install, uninstall, etc), so there is no need to write additional code.

Helper

The Helper class contains the following classes

  • App - Helper methods when developing within an app web
  • Dependencies - Loads the required SharePoint scripts
  • Field - Generates field schema xml
  • JSLink - Helper class for creating JSLink solutions
  • ListForm - Helper class for creating custom list forms
  • ListFormField - Helper class for custom list forms
  • parse - Parse method to convert the stringified value to a base object
  • SPCfg - Helper class for creating SharePoint assets and configuration scripts
  • Taxonomy - Helper class for getting terms from the managed metadata taxonomy term store
  • WebParts - Helper class for creating webpart solutions

Intellisense

One of the more important features of this framework is the intellisense. The classes have been setup to ensure the developer does not need to define the output type of the request. The "Types" and "SPTypes" classes can both be imported into the project. The "Types" class includes allows of the interfaces available in the library. The "SPTypes" class contains all of the enumerators in SharePoint. These interfaces can be used to provide intellisense for the custom variables.

Modern Experience in SharePoint 2013

The gd-sprest-react library contains SharePoint components:

  • Field
  • Item Form
  • Panel
  • People Picker
  • WebParts
    These components use the office fabric ui, to provide an Office 365 experience within SharePoint 2013.
Upgrade Path to SharePoint Framework

The react components developed for SharePoint 2013 can be ported over to the SharePoint Framework's modern webpart.

WebParts

The webpart component allows the developer to easialy assign react components to be rendered based on the page's state (Display/Edit). This component currently supports webpart, publishing and wiki pages. The following webpart components are available:

  • Configuration - A react component to be used when the page is being edited, displaying an "Edit Configuration" button to render a panel for custom webpart properties.
    • List Configuration - Inherits the configuration webpart, displaying a web url and list dropdown.
    • Field Configuration - Inherits the list configuration webpart, adding a field picker.
    • Search Configuration - Inherits the field configuration webpart, filtering the field picker to field types supported by the search webpart.
  • List - Allows the developer to define an OData or CAML query, and contains two methods:
    • onRenderContainer - Optional method with the query results passed as the input parameter.
    • onRenderItem - Requires method with the item result passed as the input parameter.
  • Search - Inherits the list webpart, adding a search textbox. Based on the configuration fields, a mapper is created based on the item data. This feature will automatically filter the items displayed.
  • Tabs - Displays all associated webparts within the same zone in tabs.

  • .NETFramework 4.5

    • No dependencies.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
5.2.6 0 2/27/2020
5.2.3 67 2/11/2020
5.2.2 32 2/10/2020
5.2.1 48 1/28/2020
5.1.9 149 1/25/2020
5.1.3 88 12/16/2019
5.0.8 48 11/24/2019
5.0.6 49 11/19/2019
5.0.5 44 11/17/2019
4.9.9 65 9/21/2019
4.9.2 83 8/25/2019
4.9.1 73 8/23/2019
4.9.0 74 8/21/2019
4.8.9 76 8/20/2019
4.8.7 93 6/14/2019
4.8.5 96 6/11/2019
4.8.2 210 4/22/2019
4.8.1 170 4/21/2019
4.7.9 132 4/18/2019
4.7.5 130 3/3/2019
4.7.4 123 3/2/2019
4.6.8 133 2/19/2019
4.6.4 125 2/7/2019
4.5.3 136 1/27/2019
4.5.2 137 1/21/2019
4.4.8 152 1/20/2019
4.4.6 204 1/20/2019
4.4.3 198 12/13/2018
4.4.2 190 12/12/2018
4.3.8 167 12/1/2018
4.3.7 156 11/11/2018
4.3.4 166 10/25/2018
4.2.7 202 9/26/2018
4.1.8 212 8/14/2018
4.1.6 247 7/23/2018
4.1.5 265 7/19/2018
4.1.4 297 7/17/2018
4.1.3 233 7/17/2018
4.1.2 288 7/13/2018
4.0.4 287 6/20/2018
3.9.1 322 4/29/2018
3.8.9 296 4/23/2018
3.8.6 302 4/18/2018
3.7.7 323 4/2/2018
3.6.4 322 3/17/2018
3.6.2 342 3/16/2018
3.6.0 281 3/15/2018
3.5.5 326 3/9/2018
3.5.3 319 3/8/2018
3.4.8 333 2/13/2018
3.4.1 316 2/7/2018
3.3.3 329 2/4/2018
3.2.3 263 1/28/2018
3.2.0 368 1/25/2018
2.5.9 381 1/10/2018
2.3.0 382 12/8/2017
2.2.8 325 12/2/2017
2.2.5 588 11/19/2017
2.2.4 572 11/5/2017
0.0.3 622 11/5/2017
0.0.2 631 11/5/2017
0.0.1 315 11/5/2017
Show less