Skip to content
Paulius Mačiulis edited this page Jul 31, 2013 · 24 revisions

Install API module

To use a Better CMS API you need to install a BetterCms.Module.Api package:

Install-Package BetterCms.Module.Api

With BetterCms.Module.Api module installed you can access Better CMS functionality. The easiest way to catch the main idea how to get some data from the Better CMS, check out the example.

Note: do not forget to wrap API code in using, because context object must be disposed after it was used:

using BetterCms.Module.Api;
using BetterCms.Module.Api.Infrastructure;
using BetterCms.Module.Api.Infrastructure.Enums;
using BetterCms.Module.Api.Operations.Pages.Widgets;
[...]
using (var api = ApiFactory.Create())
{
    var requestModel = new GetWidgetsModel();
    requestModel.Take = 5; // Retrieves 5 items
    requestModel.Skip = 3; // Skips 3 items

    requestModel.Order.Add("Name"); // Sorts by name ascending
    requestModel.Order.Add("CreatedOn", OrderDirection.Desc); // Then sorts by date descending

    requestModel.Filter.Connector = FilterConnector.And; // Filtering connector (optional, default value = FilterConnector.And)
    requestModel.Filter.Add("Name", "A", FilterOperation.StartsWith); // Filters by name: item should start with "A"
    requestModel.Filter.Add("Name", "B", FilterOperation.EndsWith); // Filters by name: item should start with "B"

    var innerFilter = new DataFilter(FilterConnector.Or); // Create inner filter
    innerFilter.Add("CreatedBy", "Name.Surname.1");
    innerFilter.Add("CreatedBy", "Name.Surname.2");
    requestModel.Filter.Inner.Add(innerFilter); // Add inner filter to filters list

    var request = new GetWidgetsRequest { Data = requestModel }; // Create request

    var widgets = api.Pages.Widgets.Get(request); // Execute query
}
[...]

The main idea is to create the API context and use the methods it provides.

All the methods with requests and responses are explained in the Web API documentation.

Install Web API module

To expose API via Web (Web API with REST) you need to install a BetterCms.Module.Api.Web package:

Install-Package BetterCms.Module.Api.Web

Access API data contracts only

To add a module with data contracts only you need to install a BetterCms.Module.Api.Abstractions package:

Install-Package BetterCms.Module.Api.Abstractions

Clone this wiki locally