所以...我知道这个问题可能会危险地接近意见。我希望不是,而且REST标准清楚了我要问什么,但如果不是,我会关闭它。“Right”REST URL获取所有资源中的所有资源?
我有一个网站(Django的,与数据存储在Postgres的)与Product
(-s)和Category
(-ies)每个category
可以包含多个product
(-s)。
所以,问题是:什么是“正确的”端点(如果有的话)以获得所有类别中的所有产品?
我相信这将清楚得到一个特定类别的所有产品。例如,如果类别ID是24
,为了得到它的所有产品,我会写:
http://myserver.com/api/categories/24/products
但所有类别的所有产品在每个如何?
会是http://myserver.com/api/categories/products
?
会是http://myserver.com/api/categories/all/products
?
使用某种参数比如http://myserver.com/api/categories?mode=all_products
会更好吗?
这个想法是有这样的(JSON格式)的响应
{
"25": [{
"id": 1,
"name": "Product 1 in category 25",
"price": 100
}, {
"id": 2,
"name": "Product 2 in category 25",
"price": 200
}],
"26": [{
"id": 3,
"name": "Product 1 in category 26",
"price": 300
}, {
"id": 4,
"name": "Product 2 in category 26",
"price": 400
}]
}
预先感谢您。
它可能只是http://myserver.com/api/products。由于URL的含义是完整的可用产品集合,并且结果的格式不考虑类别。例如:http://www.restapitutorial.com/lessons/restfulresourcenaming.html – 4xy
感谢您的评论,@ 4xy :-)具有特定网址的东西是我已经拥有它来获取所有产品的列表,无论的(或者不按其分类)。 – BorrajaX
'REST标准'? REST只是一种建筑风格,不是标准!接下来,REST并不关心你的URI设计,只是你尊重支持协议(在你的情况下是HTTP),并且这些URI是他们声称的唯一的。像http://someserver.com/foo/bar/adjfajdöaj/sajdkaj就像您提交的URI之一一样(好或坏是基于意见的) –