join资源的命名约定是什么?



两个资源:

  • /user
  • /product

数据库表名为user_product,它描述了用户和产品之间的关系。但是,端点POST /user/{id}/product/{id}将指示在user下更新特定的product,而不是创建新的关系。

因此,我将资源命名为POST /user/{id}/product/{id}/purchase,它定义了虚拟的资源购买。毕竟,这就是表中的数据所表示的内容。

我知道描述REST原则的原始论文对标准化命名几乎没有什么帮助。我想知道业界建立的命名资源的惯例是什么,以确定两个资源之间的关系?

我猜您的购买存储在某个数据库中,实际购买分配了自己的ID。为什么不像/purchases/{purchase-id}那样直接使用这个ID呢?

如果一个用户多次购买同一产品,则示例/user/{id}/product/{id}/purchase将不起作用。当然,除非资源发出"用户至少购买了一次产品X"的信号,或者返回该用户购买产品X的所有列表——这看起来更像一个查询(可以分配自己的资源)。

因此,我将资源命名为POST /user/{id}/product/{id}/purchase

请注意不要在资源名中包含方法名(如POST)。为什么是POST?它是用于创建/修改关系,还是您的意思是GET获取有关关系的一些信息?

我知道描述REST原则的原始论文对标准化命名几乎没有什么帮助。我想知道业界建立的命名资源的惯例是什么,以确定两个资源之间的关系?

没有,但是如果你想要一些提示,那么我在这里写了一篇关于这个主题的文章:http://soabits.blogspot.dk/2013/10/url-structures-and-hyper-media-for-web.html

最新更新