我用这两个资源(用tastepie)构建了一个RESTful API:
class PhotographerResource(ModelResource):
album = fields.ToManyField('core.api.AlbumResource', 'album_set')
class Meta:
queryset = Photographer.objects.all()
resource_name = 'photographer'
authorization = Authorization()
class AlbumResource(ModelResource):
artist = fields.ForeignKey(PhotographerResource, 'photographer', full=True)
class Meta:
queryset = Album.objects.all()
resource_name= 'albums'
authorization = Authorization()
现在,当我访问时,/api/v1/albums/1
我得到以下结果:
{
"album": ["/api/v1/albums/4/", "/api/v1/albums/5/"],
"photographer_name": "Jimi Hendrix",
"photographer_thumbnail": "http://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Katatonia_in_2004.jpg/300px-Katatonia_in_2004.jpg",
"biography": "Jimmi Hendrix is an awesome musician man...",
"id": "1",
"page_link": "http://ahmetkaya.com/",
"resource_uri": "/api/v1/artists/1/",
"slug": "jimi-hendrix"
}
现在在我的前端 Backbonejs 中,当我想获取摄影师的相册时,我必须创建一个album
对象,fetch
即来自服务器的数据以在视图中呈现它。现在我的问题是,这种方法(向服务器发送许多请求)不会减慢页面的加载速度并对用户体验和应用程序性能产生负面影响吗?有没有更好的方法来设计我的资源之间的关系?save
或者,用处理and的 Django 视图替换 RESTful API 是否更好fetch
,或者这不是“正确”的做法?我想在学习时遵循约定和最佳实践,但是 Backbonejs 似乎真的没有约定..
谢谢