0

我有一个资源客户:

{
"active": true,
"addresses": [...],
"company_name": "My Products",
"customer_account": "MMM474",
"customer_id": 6163,
"emails": [...],
"phones": [...],
"website": "" }

以及相关的资源地址。

访问 Address 的哪个 url 更 RESTful:

http://domain.tlc/api/v1/customeraddresses/[id]/

或者

http://domain.tlc/api/v1/customers/[id]/addresses/

[id]是特定客户的 ID,。customer_id

4

4 回答 4

3

绝对选项 2。它将允许您进一步扩展 API 并使其保持一致:

http://domain.tlc/api/v1/customers/[id]/contacts/

于 2013-10-11T12:26:06.970 回答
0

要访问特定客户的地址,我会选择选项 2。

于 2013-10-11T12:24:53.947 回答
0

您可以将 URL 视为将空间划分为子空间。假设您将“客户”作为您的根空间,在其下方,它包含用 [id] 标识的客户。然后,在每个 customer=[id] 下,都有“地址”。

因此,它将导致您的第二个选择:

http://domain.tlc/api/v1/customers/[id]/addresses/
于 2013-10-11T15:23:00.793 回答
0

如果[id]在这两种情况下都是特定客户的 ID,并且两个 URL 都返回该客户的地址列表,我会说选择 #2。

  • http://domain.tlc/api/v1/customeraddresses/[id]/看起来像一个特定的客户地址资源
  • http://domain.tlc/api/v1/customers/[id]/addresses/看起来像是特定客户的所有地址的列表。

也就是说,它们都是“RESTful”的,因为它们都标识了一个资源。

于 2013-10-11T12:31:10.857 回答