1. Register the route via a pipeline processor
using Sitecore.Pipelines;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
namespace Sitecore.Feature.Business.Pipelines
{
public class RegisterHttpRoutes
{ public void Process(PipelineArgs args)
{
GlobalConfiguration.Configure(Configure);
}
protected void Configure(HttpConfiguration configuration)
{
var routes = configuration.Routes;
routes.MapHttpRoute("PartnersApi", "api/partners/{id}", new
{
controller = "BusinessSearchApi",
action = "Search"
});
}
}
}
2. Create a controller with a POST method that returns results
using Sitecore.Feature.Business.Models;
using Sitecore.Foundation.Indexing.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
namespace Sitecore.Feature.Business.Controllers
{
public class BusinessSearchApiController : ApiController
{
[System.Web.Http.HttpPost]
public ISearchResults Search(PartnerQuery query)
{
var result = new List<string>();
//TODO:
call search service
return new SearchResults() { TotalNumberOfResults = 50 };
}
}
}
3. Use Postman to test the POST request. Browser only does GET requests.
http://sitecore.local/api/partners/someId returns
{
"Results": null,
"TotalNumberOfResults": 50,
"Query": null
}
No comments:
Post a Comment