正如 OO 经常涉及参数为对象的方法一样,REST 似乎不可避免地导致需要将资源作为参数传递。这怎么做最好?
一种方法似乎是资源的标量键是参数。所以我们可能会通过fooid=21
以识别 foo 类型的资源。可能是单个标量不足以识别资源,因此我们可能需要通过footype=a&fooelement=2
. 这看起来不太好,因为不清楚这些标量参数实际上是连接的并引用单个资源。
真的,如果参数是资源,它不应该被它的URI引用吗?所以我们可能想要传递更像/foo/21
or的东西/foo/a/2
。但是接下来有一个关于如何调用参数的问题。应该是foo=/foo/21
吗?可能不是。明显的障碍是资源现在被过度指定了。我们知道这/foo/21
是一个 foo 资源的实例,而没有被告知更多,我们不希望它可以编写bar=/foo/21
.
我们并不真正想要一个完全中立的参数名称,例如resource=/foo/21
因为如果多个参数是一种资源,那么它是不具信息性的并且难以使用。
因此,参数名称可能应该描述参数与提供它的资源/方法之间的交互。但是找到合适的描述有多容易?
有没有人对这些问题有任何想法?