0

我有一个配备了 Tastypie 的 Django,在 REST 样式下,将不同类型的对象组合在一起并不容易,所以我在想是否可以提供一个特殊的视图来将几个 REST url 的响应组合成一个更大的 JSON 对象并返回客户。网址可能看起来像,

http:// domain.com /combined_view/?p={rest url 1...}&p={rest url 2...}&p={rest url 3...}

返回的 JSON 将是,

[ {response of rest url 1...}, {response of rest url 2...}, {response of rest url 3...}, ... ]

问题是,在普通的 django 视图中,如何伪造请求对象,并将其处理为响应对象?谢谢。

4

2 回答 2

0

从视图内部调用自己的 RESTful API 是一种资源浪费。改为使用数据库 ORM 直接访问对象。

不相关的资源/对象也不应该组合在一起。如果您认为模型应该组合在一起,那么也许您的模型需要处理它并具有将两者结合起来的关系。

要直接回答您的问题,您可以使用httplib2调用您的网址并解析响应。

于 2012-10-11T12:16:40.533 回答
0

我敦促你重新考虑你在做什么,因为我们在这里给你的任何答案都必然会直接违背 REST 接口的足智多谋的设计。

如果您有Foo,BarBaz模型并为它们创建等效资源,则不可能生成将返回Foo, Bar,Baz资源的混合集合的请求,除非这些是联合关系中的嵌套资源。

您要么没有以足智多谋的方式思考,要么不需要思考,但绝对不要将 RESTful 架构变成​​他们没有设计的东西。

于 2012-10-11T12:20:44.787 回答