-
Notifications
You must be signed in to change notification settings - Fork 147
API for Developers
Paulius Mačiulis edited this page Jul 31, 2013
·
24 revisions
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.
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
To add a module with data contracts only you need to install a BetterCms.Module.Api.Abstractions package:
Install-Package BetterCms.Module.Api.Abstractions