所以......我知道这个问题可能危险地接近于基于意见。我希望不是,并且 REST 标准清楚地说明了我要问什么,但如果不是,我将关闭它。
我有一个带有Product(-s) 和Category(-ies)的网站(在 Django 中,数据存储在 Postgres 中)每个都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
}]
}
Run Code Online (Sandbox Code Playgroud)
先感谢您。
就 REST 而言,如果您在 url 中唯一地表示资源cacheable(并且遵守 HATEOAS,但让我们跳过那部分),那么您如何构建 url 并不重要。在我看来,既然你想得到所有的产品,你的网址应该是这样的
GET /products # to return all products with their associated categories
GET /category/24/products # to return all products belonging to a particular category
Run Code Online (Sandbox Code Playgroud)
注意:- 尽管 url 结构不完全是 REST 的一部分,但是根据实体/资源和标识符设计 url 确实可以更轻松地创建 RESTful API。结构良好的 url 也使它们更容易被客户使用。
| 归档时间: |
|
| 查看次数: |
7306 次 |
| 最近记录: |