![](/img/trans.png)
[英]Routing to controller with a second parameter that's not an id in Web API
[英]Web API 2 Routing - should ID's always be included even if they are not necessary?
因此,这更多是一个设计问题,但我认为这是一个值得质疑的问题。
这是我的困境。 在设计用于消耗的API时,我最终遇到了一些非常复杂的路由。 这是一个例子:
Route("/people/{personID}/phonenumber/{phoneNumberID}/operation/{operationID}/data")
现在,此路由获取针对特定人员的针对特定电话号码的操作中执行的数据。
由于我可以仅通过operationID来获取操作数据,因此我实际上不需要包括personID或phonenumberID。 但是,此数据直接绑定到其之前的所有ID。 因此,您将创建“命令链”。
例如,我仍然可以删除operationID来获取对特定电话号码执行的所有操作。 像这样:
Route("/people/{personID}/phonenumber/{phoneNumberID}/operation")
在这种情况下,为了获得必要的操作,PhoneNumberID现在是相关的和必需的。 在前面的示例中, PhoneNumberID
没有执行任何操作,这是因为我具有显式operationID
来检索数据。
已经到我的问题了!
所以! 即使实际上不需要检索所有ID,我也应该始终在路由中包含所有ID吗? 还是这是设计不佳的情况,我真的应该重新考虑一下我该怎么做? 我的内心有些不适。
您应该尝试遵循RESTful设计。 如果某人正在尝试消耗的资源不需要它,则将其忽略。 尝试使API尽可能清晰明了。
如果您需要创建复杂的或更详细的API方法,则始终可以通过HTTP POST请求为大型响应提供这些方法。
保持简单。 保持API清洁。 清除定义明确的控制器,这些控制器仅占用特定资源所需的资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.