我们的 REST 接口的要求之一是每个资源都可以通过唯一字段(除了主要标识符)来识别。这样做的原因是我们希望能够处理批量导入数据——在这种情况下,客户端无法知道系统生成的主要标识符。
这意味着我们必须能够通过独特的字段来引用我们的资源。使用主键,我们的读取请求如下所示:
GET example.com/rest/customers/1
并获得与该客户相关的订单
GET example.com/rest/customers/1/orders
现在,让我们假设 customer 中的两个字段唯一标识它,name ("foo") 和 businessId ("bar")。鉴于此,我想出了以下 URI 来获取该客户的订单:
GET example.com/someotherpath/customers/foo,bar/orders
但我不喜欢我有不同的路径来识别这是通过唯一字段访问的资源。您将如何使用唯一字段而不是主键以 RESTful 方式构建上述查询?
此外,订单如下所示:
{
<SNIP>
"orderId" : "42"
"_links": {
"customer": {
"href" : "rest/customers/1"
"key": [ "foo", "bar" ]
}
},
}
允许客户端在与接口通信时可互换地指定 href或键有什么问题吗?