宁静的资源协会?

时间:2015-01-06 18:35:46

标签: rest uri restful-architecture

我是RESTful的新手,我正在尝试尽可能灵活地开发API 但我对资源协会有点困惑。

根据许多教程,常见的RESTful资源关联看起来像:

/dogs
/dogs/{id}
/owners/{owid}/dogs

但是如下的协会呢?

/owners/{owid}/dogs/{id}

它是相关的还是无用的(因为id应该是唯一的,因此不需要指定所有者)?

2 个答案:

答案 0 :(得分:2)

转而使用以下设置。

/dogs
/dogs/{dogid}
/people
/people/{personid}

GET /people/7
{
    "dogs": [
        "/dogs/3",
        "/dogs/5"
    ]
}

GET /dogs/3
{
    "owners": [
        "/people/7",
        "/people/2"
    ]
}

请注意,这不再与您的概念联系起来;每只狗只有一个拥有者"和#34;每个人都拥有狗和#34; (由于在原始设计中被称为"所有者")。

通常,将URI嵌套,就像它们是文件夹结构一样,这是一种不好的做法。它会将你与你可能永远不想要的概念关系联系在一起。

答案 1 :(得分:1)

当狗具有所有者范围内的标识符时,确保它是相关的,例如所有者用于他的狗的昵称。

但您也可以使用/ {id}的全局标识符,并且在执行时具有此特定路径的优势,服务器将确保此特定的狗实际上归{owid}所有。 / p>

在任何情况下,使用多个路径导致同一资源不违反REST规则。最好将单个规范URL作为响应的一部分返回。

我发现http://blog.2partsmagic.com/restful-uri-design/很好地阅读了RESTful设计。