我正在使用django-piston来创建我的api。我需要知道是否可以根据参数更改返回字段。我试图返回一个缩略图字段,但我需要有通过URL传递缩略图大小的选项。
提前感谢
发布于 2012-11-08 01:20:52
刚刚想出了一些类似的东西,我相信我可以帮助您指明正确的方向。
要意识到的最基本的事情是,活塞并不关心你返回的是什么。对于我的用例,我想返回子资源。所以,如果我有:
{
"foo": "bar",
"baz": [{"id": 1}, {"id": 23}],
}我可以只请求baz对象,然后获取:
{
"baz": [{"id": 1}, {"id": 23}],
}起初,我尝试动态更改处理程序的fields或excludes,但是完全错误的方法。一旦我意识到活塞一点也不关心,我就这么做了:
if attrib is not None:
if hasattr(binder, attrib):
return getattr(binder, attrib)
else:
return rc.BAD_REQUEST效果很好。需要注意的是:fields或excludes适用于您返回的对象。当我试图返回子资源时,它让我猝不及防,而且我没有得到所有的字段。所以,如果你遇到问题,请检查一下。
对于您的情况,具体来说,我认为您可以轻松地生成所需大小的缩略图,然后构建一个元对象以返回:
meta = dict()
meta['thumbnail' = generateThumbnail(width, height)
meta['other_field'] = base.other_field
return meta看看这对你是不是有用。
https://stackoverflow.com/questions/11192427
复制相似问题