2013-05-20 55 views
0

允许RESTful API接受带有到另一个资源的隐式链接的表示是否存在缺点?RESTful API设计:合理接受唯一标识符而不是资源URI?

为了说明这一点,采取我有两个资源:

GET /people/:id 
GET /houses/:id 

一个人有除了id一个唯一的标识符,这是他们email

允许以下交互是否存在缺点?

POST /houses 
{ 
    "_links": { 
     "owner": { 
      "email": "[email protected]" 
     } 
    }, 
    "street_number": 20 
} 

服务器知道,电子邮件域是唯一的,因此可以用来识别people资源。它会为该人创建一个关联。

原因允许这将使它更容易在API客户端,他们不必先查找资源的URI。

相比之下,我肯定会允许这种类型的呼叫:

POST /houses 
{ 
    "_links": { 
     "owner": { 
      "href": "/people/3" 
     } 
    }, 
    "street_number": 20 
} 

回答

0

常理应该推动在这里。如果在您的商业模式中,用户拥有唯一的电子邮件,那么对我来说没有任何缺点。