在 REST API 中检索相关数据的最佳实践

2024-01-05

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

所以我现在的做法是,每当我请求资源时,都会通过 URL('/lated_data/lated_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

提前致谢!


是的;如果相关资源独立更新就可以了。 REST 架构依赖于缓存来提高性能,因此最适合作为原子实体的资源(请参阅更多这里 https://stackoverflow.com/questions/6668126/should-web-services-be-transactional/6668295#6668295)。这样,您可以更新资源 B 并使其表示保持最新,而无需更新资源 A。请参阅这个评论 https://stackoverflow.com/questions/4409877/url-design-for-an-api/4411929#4411929了解更多设计细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 REST API 中检索相关数据的最佳实践 的相关文章

随机推荐