对于以下资源,哪种URL模式更加RESTful?

时间:2013-10-11 12:20:30

标签: rest restful-url restful-architecture

我有一个资源客户:

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

和相关资源地址。

访问地址的网址更加RESTful:

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

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

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

4 个答案:

答案 0 :(得分:3)

明确的选项2.它将允许您进一步扩展API并使其保持一致:

HTTP://domain.tlc/api/v1/customers/ [ID] /联系人/

答案 1 :(得分:0)

要访问特定客户的地址,请使用选项2。

答案 2 :(得分:0)

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

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

也就是说,他们都是“RESTful”,因为他们都识别资源。

答案 3 :(得分:0)

您可以将URL视为子空间的空间分区。 比如说,您有“客户”作为根空间,下面包含用[id]标识的客户。然后,在每个客户= [id]下,有“地址”。

因此,它将引导您进入第二个选择:

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