我现在正面临一个问题。
我们和我们的团队正在使用REST开发一个新的应用程序。我们面临的问题是我们有时需要获取某种数据并且不知道如何创建URI。
例如,。 如果我需要一个产品列表,那么api / products /(GET)就可以了。 单个产品,api / products / 1(GET)
如果我只需要一个缺货产品清单,或只剩下一件产品的产品怎么办?
我会用什么URI?我不认为REST可以做到。
谢谢你。
BTW:我正在使用VS 2012 Web API。
答案 0 :(得分:5)
您可以在REST中使用“查询参数”进行“过滤”,这是一种常见的方法。请记住,REST是一种“架构风格”,即一组留下一些解释空间的原则。在你的情况下,我会说你可以创建这样的东西:
GET /api/products?instock=true
GET /api/products?countinstock=1
其中“instock”和“countinstock”是“查询参数”,您在REST API实现中将其用作过滤器来查询数据库。
这种方法在RESTful设计中是普遍接受的,即您仍然拥有执行GET操作/动词的“资源”(产品),唯一的额外部分是用于过滤和约束“查询参数”的“查询参数” “on the”资源。请参阅本主题中的一些进一步讨论(以及支持“查询参数”的用户):
答案 1 :(得分:0)
为什么不修改控制器以获取id和inStock等多个参数?例如,您的URI可能类似于api/products?id=1&inStock=0