Applying REST Query Filter To Field With The SharePoint 2013 REST API

Introduction

SharePoint development using JavaScript for any time I require unique customization not possible using out of the box. One of the technical challenges you may come across in your travels is trying to perform a GET of list items and filtering where a column value. Seems pretty straightforward right?

Scenario

In old days working with SharePoint lists or library, many times we came across querying lists and applying filter on list items using CAML Query. We all know constructing long CAML query gets confusing and many lines of chunks as well.

But no worries REST is the life saver; with REST it’s very easy to filter lists and gives to flexibility using few lines or sometimes just on line of code.

In this post, I will be showing how you can use REST to filter or query on SharePoint lists and returns data as you want.

You’ll first start to craft your URI like the following:

https://<siteUrl>/_api/Web/Lists/GetByTitle(‘listname’)/items?$select*&$filter= Title eq ‘test’

  • $Select: Lets you select list columns you want to return
  • $filter: Condition based results.

Refer the following images and code for clear understanding.

divisions
Solution

1st Approach

Open the browser and add the following URL in the address bar:

https://hostssite/apps/TestAppsite/_api/Web/Lists/GetByTitle('Divisions')/items?$select=*&$filter=Title eq 'test1'

code

2nd Approach: Using JQuey

Step 1: Navigate to your SharePoint 2013 site.

Step 2: From this page select the Site Actions | Edit Page.

Edit the page, go to the "Insert" tab in the Ribbon and click the "Web Part" option. In the "Web Parts “dialogue, go to the "Media and Content" category, select the "Script Editor" Web Part and click the "Add button".

Step 3: Once the Web Part is inserted into the page, you will see an "EDIT SNIPPET" link; click it. You can insert the HTML and/or JavaScript as in the following code snippet:

  1. function Divsion ()  
  2. {  
  3.   
  4.     var listName = "Divisions";  
  5.     var itemId="";  
  6.   
  7.     var Ownurl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle(' Divisions’)/items?$select=OwnerEmailID&$filter=Title eq 'test1'";  
  8.     $.ajax({  
  9.   
  10.         url: Ownurl,  
  11.         headers: { Accept: "application/json;odata=verbose" },  
  12.         async:false,  
  13.         success: function (data) {  
  14.             var items = data.d.results;  
  15.             if (items[0].OwnerEmailID != "") {  
  16.                 itemId = items[0].OwnerEmailID;  
  17.             }  
  18.   
  19.   
  20.         },eror: function (data) {  
  21.         alert("An error occurred. Please try again.");  
  22. }  
  23.     });  
  24. }