2017-10-13 5 views
0

Je souhaite mapper un itinéraire vers un ApiController pour y envoyer des données. Je n'utilise pas un contrôleur de surface, puisque je veux une url propre comme /api/test/{action}, sans la partie umbraco/surface dans l'URL.Umbraco 7 route vers le contrôleur personnalisé pour le repos API

Je suis en train d'utiliser

RouteTable.Routes.MapHttpRoute(
    "ApiTest", 
    "Api/Test/{action}", 
    new 
    { 
     controller = "Api_Test", 
     action = "Search" 
    }); 

Mais j'obtiens une erreur depuis MapHttpRoute besoin d'un 4ème paramètre chaîne [].

Comment puis-je mapper cet itinéraire? Ensuite, je vais poster un json ou xml et retourner la réponse (json ou xml).

+0

https://our.umbraco.org/documentation/reference/routing/webapi/ –

+0

Parce que je ne veux pas le '/ Umbraco /' dans l'Url – GiuServ

+0

Assez juste. Vérifiez ceci: https://www.andreasjohansson.eu/technical-blog/configuring-custom-web-api-routing-for-umbraco-sites/ mais ignorez les points 3+ et remplacez-le par un simple EventHandler avec des overrides. Ça devrait faire son travail. –

Répondre

0

Utilisez plutôt RouteTable.Routes.MapRoute. Je l'ai utilisé précédemment dans les sites Umbraco et cela fonctionne bien, par exemple. Pourquoi vous n'utilisez pas UmbracoApiController avec le routage automatique déjà appliqué?

RouteTable.Routes.MapRoute(
       name: "cookie-api-location", 
       url: "cookie-api/setregioncheckcookie/", 
       defaults: new 
       { 
        controller = "Cookie", 
        action = "SetRegionCheckCookie" 
       } 
      );