What does it look like to use the Services Framework?
IServiceRouteMapper
interface
void RegisterRoutes(IMapRoute)
MapHttpRoute
method on IMapRoute
argument
/DesktopModules/Module/API/[route]
/*GET /DesktopModules/Example/S/API/Example.ashx*/ namespace Example.Dnn.Services { using DotNetNuke.Web.Api; public class Mapperator : IServiceRouteMapper { public void RegisterRoutes(IMapRoute mapper) { mapper.MapHttpRoute( moduleFolderName: "Example/S", routeName: "default", url: "{controller}.ashx", namespaces: new[] { "Example.Dnn.Services", }); } } }
DnnApiController
Controller
public
methods are actions
HttpResponseMessage
namespace Example.Dnn.Services { using System.Net; using System.Net.Http; using DotNetNuke.Web.Api; public class ExampleController : DnnApiController { public HttpResponseMessage GetHello() { return this.Request.CreateResponse( HttpStatusCode.OK, new { number = 1, text = "Hi!", }); } } }
UserInfo
(and authentication)ActiveModule
PortalSettings
ActiveTab
HomeDirectoryMapPath
AdministratorId
AdministratorRoleName
CultureCode
PortalAlias
using DotNetNuke.Framework; public class MyModuleControl : ModuleView<MyViewModel> { protected MyModuleControl() { ServicesFramework.Instance.RequestAjaxAntiForgerySupport(); } }
var sf = $.ServicesFramework(<%:ModuleContext.ModuleId%>); $.ajax({ type: 'GET', url: sf.getServiceRoot('Example/S') + 'Example.ashx', beforeSend: sf.setModuleHeaders, data: {} }).done(function (data) { /*...*/ }) .fail(function (xhr, status) { /*...*/ });
var requestUri = new Uri("http://dnn7.dev/DesktopModules/Example/S/API/Example.ashx"); var request = new HttpRequestMessage(HttpMethod.Get, requestUri); request.Headers.Add("ModuleId", "1740"); request.Headers.Add("TabId", "56"); var client = new HttpClient(new HttpClientHandler { Credentials = new NetworkCredential("host", "pa$$") }); var response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { // TODO: show error return; } var json = await response.Content.ReadAsStringAsync();
Use a spacebar or arrow keys to navigate