0

我在某些路线上遇到了一些问题。首先,看这篇文章: REST api, POST entity with Relations?

我不确定如何为该答案实际创建路线/路线,所以我开始这样做:

config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        //Artist/////////////////////////////
        config.Routes.MapHttpRoute(
            name: "ArtistAlbum",
            routeTemplate: "api/artist/{id}/album",
            defaults: new { controller = "ArtistAlbum" }
        );
        ////////////////////////////////////

但是第一条路线也可以通过简单地导航到/api/ArtistAlbum/{artistid}/album我不想要的内容来发布、获取等。

我想限制用户只能通过使用/api/artist/{id}/album路由来获取、发布、放置、删除等。有任何想法吗?

如果您问我,由于手动创建大量路线,因此有关如何执行此操作的任何建议似乎都不是很好。

4

1 回答 1

0

订单很重要。如果你想api/artist/{id}/album优先于类似的东西api/artist/{id},那么你需要将你的调用顺序切换到config.Routes.MapHttpRoute

这样api/artist路由将优先于api/ANYTHING.

于 2013-03-11T20:09:16.700 回答