【发布时间】:2017-02-22 13:44:19
【问题描述】:
我有一个 REST 服务,我应该有两个删除方法。每个方法只需要一个 ID。
第一种方法删除A LOT OF元素:
[HttpDelete]
public IHttpActionResult DeleteNPs(int countryId)
{
...
return Ok();
}
第二种方法只删除一个元素:
[HttpDelete]
public IHttpActionResult DeleteNP(int npId)
{
...
return Ok();
}
如您所见,标志相同,但效果完全不同。我曾想过用两个参数创建第二种方法,如下所示:
[HttpDelete]
public IHttpActionResult DeleteNPs(int countryId, int npId)
{
...
return Ok();
}
但这是一个非常糟糕的解决方法......在第二种情况下,我也没有国家 ID。我必须如何使用 REST 范例来管理以下情况?
谢谢
【问题讨论】:
-
为什么不为每种方法使用不同的路径?
-
你的意思是我应该为每种方法设置两条不同的路线?这是 REST 服务的正确方法吗?
-
@Ciccio 请不要让“正确的方法”战胜您对“正确实施”的感觉。
-
你是对的.. 但如果我有时间花时间,我更喜欢以正确的方式做事...... 而不仅仅是“工作”的方式
-
@Ciccio - 请记住 REST 只是一个术语,它的实现取决于您的需求。 API 的结构主要取决于您的领域,而不仅仅是 REST 决定因素。
标签: c# rest http-delete