3

所以我有一个 REST API,其中我有一个资源,其中其他资源链接到(相关模型,从编程的角度来看)。

所以我现在的做法是,每当我请求资源时,都会通过 URL ('/related_data/related_data_id/') 引用相关资源。

但是,我担心,假设我要检索的资源有 5 个相关资源,我会执行 5 个 GET 请求。我正在编写一个 iPhone 客户端,我想知道这是否是如何使用 REST 正确完成它(我正在返回 URL)。示例 JSON 响应如下:

{
"meta": {
            "limit": 20, 
            "next": null, 
            "offset": 0, 
            "previous": null, 
            "total_count": 2
        }, 
"objects": [
    {
        "away_team": "/api/team/3/", 
        "country": "/api/country/1/", 
        "event_date": "2011-08-16", 
        "event_time": "06:00:00", 
        "event_timezone": "GMT", 
        "home_team": "/api/team/4/", 
        "id": "1", 
        "level": "/api/level/4/", 
        "resource_uri": "/api/event/1/", 
        "tournament": "/api/tournament/1/"
    }, 
    {
        "away_team": "/api/team/4/", 
        "country": "/api/country/1/", 
        "event_date": "2011-09-29", 
        "event_time": "12:00:00", 
        "event_timezone": "UTC", 
        "home_team": "/api/team/3/", 
        "id": "2", 
        "level": "/api/level/1/", 
        "resource_uri": "/api/event/2/", 
        "tournament": "/api/tournament/6/"
    }
]
}

考虑到“每个 URI 必须映射到资源”以及所有这些事情,这是在 REST 中执行此操作的正确方法吗?

我正在使用 Django 和 django-tastypie

提前致谢!

4

1 回答 1

2

是的; 如果相关资源独立更新,这是正确的。REST 架构依赖于缓存来提高性能,因此最适合用作原子实体的资源(在此处查看更多信息)。这样,您可以更新资源 B 并使其表示是新鲜的,而无需更新资源 A。有关更多设计细节,请参阅此 SO 评论

于 2011-09-19T05:31:22.030 回答