gpt4 book ai didi

rest - 在 ASP.net MVC 4 Web Api 路由中正确处理嵌套资源

转载 作者:行者123 更新时间:2023-12-04 01:07:18 24 4
gpt4 key购买 nike

我想以这种方式提供 REST API:

GET /api/devices
POST /api/devices
PUT /api/devices/1
DELETE /api/devices/1

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

这些是操作:
public IEnumerable<Device> Get()
{
//return all devices
}

public Devices Get(id)
{
//return a specific devices
}

等等。

当我想处理嵌套资源时出现问题:
GET /api/devices/1/readings
POST /api/devices/1/readings
GET /api/devices/1/readings/1
PUT /api/devices/1/readings/1
DELETE /api/devices/1/readings/1

这是我对这些的配置:
config.Routes.MapHttpRoute(
name: "NestedApi",
routeTemplate: "api/{controller}/{parentResourceId}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);

尝试对嵌套资源进行 GET 和 POST 时会出现此问题:
[HttpGet]
public String Readings(int parentResourceId)
{
//return a list of readings for the device
}

[HttpPost]
public String Readings(int parentResourceId)
{
//create and return the id of a reading for the device
}

这当然是失败的,因为有两个 Action 具有相同的签名。

我想听听使用最 RESTful 方法完成此任务的方法

最佳答案

Microsoft 正在添加属性路由以增加路由系统的灵活性。
看看their documentation在场景 3

Stack Overflow 上也有一些答案,例如:

How to handle hierarchical routes in ASP.NET Web API?

关于rest - 在 ASP.net MVC 4 Web Api 路由中正确处理嵌套资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17493275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com