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

Ric*_*rmo 0 rest uri restful-url

我现在正面临一个问题.

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

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

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

我会用什么URI?我不认为REST可以做到这一点.

谢谢.

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

emg*_*lva 5

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

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

其中"instock"和"countinstock"是"查询参数",您在REST API实现中将其用作查询数据库的过滤器.

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