首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REST api资源依赖项

REST api资源依赖项
EN

Stack Overflow用户
提问于 2014-10-28 00:36:21
回答 2查看 337关注 0票数 0

我有一个IP地址的数据管理面板,它属于组织,并由用户负责。

现在,我有了获取全部或特定IP的路由/api/ip/api/ip/{id}。其中一个资源的格式为:

代码语言:javascript
复制
{
    "ip": "200.0.0.0",
    "mask": 32,
    "broadcast": "200.0.0.1"
}

现在,当我选择IP时,我希望在一个页面中显示IP信息,以及它所属的组织信息和负责它的用户的信息。

在需要/api/ip/{id}的情况下,返回以下数据格式好吗

代码语言:javascript
复制
{
    "ip": "200.0.0.0",
    "mask": 32,
    "broadcast": "200.0.0.1",
    "organization": { /* organization data */ },
    "users": { /* users information */ }
}

通过这种方式,我可以在一个请求中获得所需的所有信息,但它仍然是RESTful应用程序接口吗?

或者我是否应该像/api/ip/{id}/organization/api/ip/{id}/users一样再创建两个api路由,并在3个单独的请求中获取所需的所有数据?

如果没有,什么是合适的方式呢?

EN

回答 2

Stack Overflow用户

发布于 2014-10-28 03:21:51

我会做最后一个,使用Hateoas,它允许您在资源之间进行链接。有一个非常棒的捆绑包,叫做BazingaHateoasBundle。然后,结果将如下所示:

/api/ip/127.0.0.1

代码语言:javascript
复制
{
    "ip": "200.0.0.0",
    "mask": 32,
    "broadcast": "200.0.0.1",
    "_links": {
        "organization": "/api/ip/127.0.0.1/organization",
        "users": "/api/ip/127.0.0.1/users"
    }
}
票数 0
EN

Stack Overflow用户

发布于 2014-10-28 21:52:02

拥有嵌套的资源是完全可以的。您可以按照显示的方式展开它们,也可以通过添加链接(使用适当的链接关系或RDF元数据)来折叠它们。我建议您使用标准的或至少有文档记录的超媒体类型,例如JSON-LD + Hydra或HAL+JSON。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26592359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档