REST API から返したい JSON オブジェクトの大規模な (ただし有限の) 配列があるとします。これを行う標準的な方法は、配列全体を返すことです。つまり、クライアントは配列全体のダウンロードが完了するまで待ってから解釈する必要があります。
オブジェクトを一度に 1 つずつ処理できるようにするには、どうすれば上記の配列を返すことができるでしょうか?
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)
そのようなインターフェースは存在しますか?実装するにはどうすればよいですか?