如何创建这些URL

时间:2014-10-10 23:05:20

标签: rest asp.net-web-api

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?

必须通过路由器配置来完成吗?如何在不影响默认路由器配置的情况下添加新路由器?我们如何在控制器方法中使用这些值?

谢谢你, 埃里克

1 个答案:

答案 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 }
        );
    }