0

我现在面临一个问题。

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

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

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

我将使用什么 URI?我认为 REST 做不到。

谢谢。

顺便说一句:我正在使用 VS 2012 Web API。

4

2 回答 2

5

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

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

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

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

于 2013-10-02T20:46:10.130 回答
0

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

于 2013-10-02T17:06:44.423 回答