因此,我有一个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
提前感谢!
发布于 2011-09-19 13:31:22
是的,如果相关的资源是独立更新的,这是合适的。REST架构依赖于缓存来提高性能,因此最适合使用充当原子实体的资源(请参阅more here)。这样,您可以更新资源B并使其表示新鲜,而不必更新资源A。有关更多设计细节,请参阅this SO comment。
https://stackoverflow.com/questions/7460934
复制相似问题