【发布时间】:2013-07-01 20:26:37
【问题描述】:
我正在尝试设计两个具有依赖关系的不同资源之间的关系。场景是:
两个资源,第一个叫做“account”,第二个叫做“person”。
在我的 API 中,“人”资源是现实世界中人的代表,包括姓名、年龄、性别、地址、电话等。帐户是负责对人进行身份验证的资源,例如登录名。
所以“人”资源的表示如下:
{
"id": "7828292",
"name": "Joseph Climber",
"email": "yourmail@email.com",
"gender": "M",
"telephones": {
"main": {
"number": "898987777"
},
"secondary": {
"number": "909099090"
},
"business": {
"number": "937363902"
}
},
"address": {
"rel": "address",
"href": "person/{ID}/address"
}
}
“帐户”资源的表示形式如下:
{
"id": "login@email.com",
"tokenAccess": "5E69FAE25F4B4F3E8CC5DE09A8163520",
"link": {
"rel": "person",
"href": "person/{id}"
}
}
我的问题是:当我创建一个新人(POST person)时我没有办法对新人进行身份验证,在这种情况下需要创建一个新帐户才能做到这一点,所以这似乎有点让 API 使用者感到困惑,因为 API 不能自然地表达这种关系(良好 API 设计的基本概念)。
表示帐户和人员资源之间这种依赖关系的最佳方式是什么?
【问题讨论】:
-
“认证新人”是什么意思?你说的是 API 消费者吗?
标签: api rest resources relationship