I’m glad to announce the availability of ShareCoffee.Search
GitHub 0.0.1
.
Today I’ve published the first Add-On for ShareCoffee. By using ShareCoffee.Search
(which is also available on NuGet, bower.io, and GitHub) you can now easily execute Search queries from any SharePoint App. ShareCoffee.Search offers a fully configured PropertyObjects
to support you by writing any search query. Of course, can you use ShareCoffee to execute a GET
or POST
request against SharePoint’s Search API but then you’ve to remember all of the property names, which turned out to be very time-consuming. That’s why I decided to publish this Add-On.
After installing the package by using NuGet for example
Install-Package ShareCoffee.Search
Both ShareCoffee and ShareCoffee.Search is pulled from the NuGet Repository and installed to your App Project. Next is referencing the files using
Executing a Query (GET)
Creating a Query using ShareCoffee.Search
is nothing special. Depending on your environment you either enter by ShareCoffee.REST
or ShareCoffee.CrossDomain
namespace and use the typical ShareCoffee API. If you’re executing queries using HTTP GET
there is a URL length limitation which is defined in RFC 2616 caused by this, ShareCoffee will throw an error if you try to execute a GET
request using such a long URL. Instead, you should use PostQuery
(see next paragraph)
// either pass querytext, selectproperties, querytemplate to the constructor
var properties = new ShareCoffee.QueryProperties();
// or set the properties you're interested in directly on the properties object
properties.queryText = "SharePoint";
properties.rowLimit = 10;
properties.startRow = 5;
// optional either set on properties Object or pass to angularJS directly
properties.onSuccess = function(data){
// handle results
};
$http(ShareCoffee.REST.build.read.f.angularJS(properties))
.success(properties.onSuccess)
.error(function(error){
// handle error
});
Executing a PostQuery (POST)
I’ve written an article earlier today about some wired errors when executing PostQueries using SharePoint’s REST interface. (You can find it here). Because of these problems, there is a dedicated ShareCoffee.PostQueryProperties
class which has to be used to execute PostQueries
. See the following sample which executes a PostQuery
from a CloudHosted App using SP.RequestExecutor
// pass querytext, selectproperties, querytemplate to the ctor
var properties = new ShareCoffee.QueryProperties();
// or set them directly on the properties object
properties.queryText = "Office 365";
properties.rowLimit = 100;
properties.startRow = 50;
// either set on properties Object or use jQuery's API chain
properties.onSuccess = function(data){
// handle search results
};
$.ajax(ShareCoffee.REST.build.read.f.jQuery(properties))
.done(properties.onSuccess)
.fail(function(error){
// handle error
});
Executing a SuggestQuery (GET)
Last but not least there is also support for suggest queries. Suggest queries are straight forward. Just set all the properties you’re interested in on a new instance of ShareCoffee.SuggestProperties
and execute the query as expected.
// either pass Querytext, SelectProperties or QueryTemplate to the constructor
var properties = new ShareCoffee.SuggestProperties("SharePoint");
// or set the properties you're interested in directly on the object
properties.showpeoplenamesuggestions = true;
$.ajax(ShareCoffee.REST.build.read.f.jQuery(properties))
.done(function(data){
// handle data
})
.fail(function(error){
// handle error
});
Feedback wanted
It would be great to get some feedback from the community on ShareCoffee and ShareCoffee.Search. Do you have any issues when using my library? Is there something you don’t like about it? Do you like it? Leave a comment here or create an issue on GitHub and share your findings, feedback or question!