假设我有一个大型(但有限)的JSON对象数组,我想从REST API返回。执行此操作的标准方法是完整地返回数组,这意味着任何客户端必须等到整个数组完成下载才能被解释。
如何以一种允许一次处理一个对象的方式返回所述数组?
如果我使用Python的bottle
和urllib2
库,我会想象一个这样的界面,
server.py
@bottle.get("/long/array") # reachable from http://localhost/long/array
@streaming_json # indicates that this function returns a generator of JSON-serializable objects
def long_array():
for obj in really_long_array:
yield obj
client.py
for line in urllib2.urlopen("http://localhost/long/array"):
print json.loads(obj)
这样的界面是否存在?我该如何实施一个?