3

我从头开始对 API 实现非常陌生,我需要一些关于我的 API 结构中的标准或最佳方法是什么的建议。

目前我的实现包括嵌套路由器(drf-nested-routers 包),例如

“www.thissite.com/store/21/products/1/”

现在,当我深入研究 django 时,我发现有一些过滤器可以让我用更少的代码完成上面完全相同的操作

“www.thissite.com/products/?store__id=21&id=1”

我的问题是哪一个是最佳实践,为什么?

4

2 回答 2

0

如果产品总是与商店相关(似乎是这样,给定名称),那么它被认为是 REST 的最佳实践,通过products创建stores. 因此,我建议您遵循上述第一种方法。

过滤应该用于基于某些内部特征(例如类属性)来过滤资源,而不是基于与其他资源的关系。

于 2016-09-19T09:40:27.630 回答
0

两者都是最佳实践,因为 REST 不限制 URI 设计。我称之为www.thissite.com/store/21/products/1/分层 URI 设计和www.thissite.com/products/?store__id=21&id=1平面 URI 设计。我更喜欢平面设计,但这只是我个人的品味。如果您需要两者store-id并且product-id为了识别产品,那么这些 URI 是可以的,并且任何 URI 都可以与这些变量一起使用,例如x/y/z/:pid/q/r/s/:sid,等等...通过 REST,URI(模板)创建是服务和客户端的责任仅使用以超链接形式从服务获取的 URI。因此,从 REST 客户端的角度来看,URI 结构并不重要。我们倾向于设计好的 URI,只是为了保持 REST 服务路由逻辑清晰。

于 2016-09-23T21:15:12.303 回答