For a long time I have just done customer API controllers in Sitecore, the way I
did them in ASP.NET MVC. By modifying the Global.ascx.cs file.
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Profile", // Route name
"VisitorData", // URL with parameters
new { controller = "Visitor", action = "VisitorDetailsJSON" },