【发布时间】:2012-08-24 05:20:03
【问题描述】:
我有一个用 ASP.NET MVC 4 框架编写的 Web 服务。它的基本 CRUD 操作可以很好地映射到 REST 动词,但我需要添加一个没有的操作。
什么是正确的方法来指定有时在 URL 末尾传递一个 ID 的能力,你知道这将是一个整数类型,有时它是一个“动作”一个字符串类型,后跟一个斜杠和一个 int ID?需要有关正确路由器映射的帮助。
想法?注意:比起 100% REST,我更关心 WebAPI。
示例网址
// 获取小部件列表
http://somedomain.com/api/widget
// 获取特定的小部件
http://somedomain.com/api/widget/1
// POST - 对特定小部件执行特殊操作 - 提升
http://somedomain.com/api/widget/promote/1
这是处理它的正确方法吗?
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapHttpRoute(
name: "DefaultApiExtended",
routeTemplate: "api/{controller}/{action}/{id}"
);
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api