我正在制作一个 Restful 服务,其中我有一个项目列表,可以这样查询:
GET Api/Items
其中列出了所有项目。但当然,我还需要将这些项目列为“最受欢迎”、“属于用户 x”或“属于 Y 类”
在查看 stackoverflow 2.0 api 以了解他们如何解决此问题时,他们将其 URL 命名如下:
GET Api/Items/MostPopular
我想采用这种方法,因为它似乎很有意义并且看起来不错。
但是,如何配置 Web-API 以允许此 URL 语法?默认路由如下:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
所以我猜我需要在它前面添加我的额外路由。我可以这样做:(如果这甚至可行)
config.Routes.MapHttpRoute(
name: "SpecializedApi",
routeTemplate: "api/{controller}/MostPopular",
defaults: new { id = RouteParameter.Optional }
);
但是它会为我所有不喜欢的控制器添加 MostPopular 位。
这样的事情有用吗?
config.Routes.MapHttpRoute(
name: "SpecializedApi",
routeTemplate: "api/Items/MostPopular",
defaults: new { id = RouteParameter.Optional }
);
当我的路由表很快变得非常大并且可能无法维护时,这真的是要走的路吗?