RESTful api URI到Controller中的自定义操作

时间:2013-10-02 16:58:25

标签: rest uri restful-url

我现在正面临一个问题。

我们和我们的团队正在使用REST开发一个新的应用程序。我们面临的问题是我们有时需要获取某种数据并且不知道如何创建URI。

例如,

。 如果我需要一个产品列表,那么api / products /(GET)就可以了。 单个产品,api / products / 1(GET)

如果我只需要一个缺货产品清单,或只剩下一件产品的产品怎么办?

我会用什么URI?我不认为REST可以做到。

谢谢你。

BTW:我正在使用VS 2012 Web API。

2 个答案:

答案 0 :(得分:5)

您可以在REST中使用“查询参数”进行“过滤”,这是一种常见的方法。请记住,REST是一种“架构风格”,即一组留下一些解释空间的原则。在你的情况下,我会说你可以创建这样的东西:

  • 查询库存中的所有产品:GET /api/products?instock=true
  • 查询仅剩1张的产品:GET /api/products?countinstock=1

其中“instock”和“countinstock”是“查询参数”,您在REST API实现中将其用作过滤器来查询数据库。

这种方法在RESTful设计中是普遍接受的,即您仍然拥有执行GET操作/动词的“资源”(产品),唯一的额外部分是用于过滤和约束“查询参数”的“查询参数” “on the”资源。请参阅本主题中的一些进一步讨论(以及支持“查询参数”的用户):

答案 1 :(得分:0)

为什么不修改控制器以获取id和inStock等多个参数?例如,您的URI可能类似于api/products?id=1&inStock=0