GET / BusNumber / 12 / seatnumbers - 检索BusNumber#12的座位号列表
GET / BusNumber / 12 / seatnumbers / 5 - 检索BusNumber#12的座位#5
POST / BusNumber / 12 / seatnumbers - 在BusNumber#12中创建一个新座位
PUT / BusNumber / 12 / seatnumbers / 5 - ......................
PATCH / BusNumber / 12 / seatnumbers / 5 - ..............................
DELETE / BusNumber / 12 / seatnumbers / 5 - ............................
如何在ASP.Net Web API 2中创建上述类型的URL?
必须通过路由器配置来完成吗?如何在不影响默认路由器配置的情况下添加新路由器?我们如何在控制器方法中使用这些值?
谢谢你, 埃里克
答案 0 :(得分:0)
在Web API 2中,您可以使用操作路由属性并创建类似
的内容[Route("Buses/{busNumber}/seatNumbers")]
public IEnumerable<Bus> GetSeatNumbersByBusNumber(int busNumber) { ... }
[Route("Buses/{busNumber}/seats/{seatNumber}")]
public IEnumerable<Seat> GetSeatsByBusAndSeatNumber(int busNumber, int seatNumber) { ... }
你可以为Put,Post等做类似的事情。
有关Web API 2中路由属性的更多信息是here.
要启用路由属性,您必须像这样设置Web API配置
public static void Register(HttpConfiguration config)
{
// Attribute routing.
config.MapHttpAttributeRoutes();
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}