一个例子可能是:
{id:1,名称:“Bob”,帐户:[{id:2,名称:“工作帐户”},{id:3,名称:“家庭帐户”}}
我的问题是,什么时候将帐户作为客户的子资源公开,而不是作为单独的资源公开,是合适的/更好的?还是两者兼而有之?
这里有最佳实践吗?
这是一个很好的问题,值得讨论(没有一个“正确”的答案)。以下是您可能需要考虑的几点:
>
将子帐户资源嵌入到customer资源中会导致更多的数据总是随/customers/{id}请求发回。
如果客户机既需要基本客户信息,也需要帐户信息,则非嵌入子帐户资源将要求客户机发送多个HTTP请求。
在REST的定义中暗示,在URI上发出HTTP方法是修改URI标识的资源,因此默认情况下,您总是修改帐户,而不是客户和帐户之间的链接。
如果需要修改帐户链接的功能,可以创建类似“帐户链接请求”的资源(POST/accounts/{id}/linkreqeust或类似的内容)。这个请求本身可以有一个状态,在这个状态中,您可以使用后端功能来评估请求,然后确定帐户是否应该链接到客户或与客户分离,然后执行附加/分离过程。
总之,REST中没有任何东西阻止您使用不同的链接引用相同的资源(/accounts/{id};/customers/{id}/accounts/{acct_id})。我的偏好是,如果拥有子资源没有安全影响,那么将它与endpoint结合起来,单独访问子资源。如果帐户可以绑定到多个用户(或者没有客户),我还会公开/accounts/{id}endpoint。
ex. /customers/1:
{
"id": "1",
"name": "John Doe",
"accounts": {
"collection": [
{
"id": "1",
"type": "savings",
"balance": "$400",
"links": {
"self": "/customers/1/accounts/1"
}
},
{
"id": "2",
"type": "checking",
"balance": "$600",
"links": {
"self": "/customers/1/accounts/2",
"detach" : "/customers/1/accounts/2/linkrequest?action=detach"
}
}
],
"links": {
"self": "/customers/1/accounts",
"attach": "customers/1/accounts/linkrequest?action=attach"
}
},
"links": {
"self": "/customers/1"
}
}
我已经创建了一个RESTAPI,我想我遇到了RESTful问题。 它与以下问题有关: 检索相关数据 我有一个叫做“案例”的资源。案例还包含相关数据,如用户和消息。问题是我想从案例中获取相关的查询用户和消息数据,但我不确定URI设计。也有不同类型的相关/计算数据。这些相关数据应用于创建数据可视化。 我如何获取案例/用户/消息是RESTful的: 我创建相关资源的第一个想法是(我认为URI看起来不对,
随着 Jekyll 被更广泛的使用,一系列的教程、框架、扩展、示例和其他各种有用的资源也相继出现。下面列出了一些最流行的 Jekyll 资源合辑的链接。 Jekyll 提示和技巧,以及示例 与 GitHub Pages 集成的技巧 重用代码并保持文档同步至最新的示例。 使用 Simple Form 来集成一个简单的联系表单 JekyllBootstrap.com 提供了详细的解释,例子和辅助代码让
Windows 命令行界面 cmder 的官方网站 宁皓网《命令行》视频课程 宁皓网《我的工作流程:Windows》视频课程里的命令行 宁皓网《我的工作流程》视频课程里的终端
Atlassian:Learn Git Git 远程服务 Github,国外服务商,公开仓库免费,私有仓库收费 Coding.net,国内服务商,提供免费的公开与私有仓库 阿里云 Git,国内服务商,提供免费的公开与私有仓库 Atlassian,国外服务商,提供免费的公开与私有仓库
Digital Ocean:How To Use Rsync to Sync Local and Remote Directories on a VPS Tecmint:10 Practical Examples of Rsync Command in Linux
相关资料: MDN 影子DOM(Shadow DOM) Web Components Shadow DOM v1:独立的网络组件