私が尋ねた別の質問のフォローアップとして、webapp2 pythonサーバーにチャネルAPIメッセージとしてクライアントに送信するには大きすぎる(約100 kb)jsonデータを提供させる最も簡単な方法についての基本的な質問があります。
webapp2サーバーは、クライアントの要求に基づいて数分にわたって複数のデータファイルを生成します。データの準備ができたら、Channel APIがURLを含むメッセージをクライアントに送信し、クライアント(GWTアプリ)に送信してほしいと考えています。 httpGETリクエストを実行してデータを取得できます。各データファイルはクライアントに固有であるため、サーバーには、クライアントに適切なデータファイルを提供するリクエストハンドラーが必要です。
リクエストが呼び出されたときに、その特定のクライアントの別のリクエストハンドラーから直接正しいデータファイルを提供できるリクエストハンドラーを作成できますか?または、クライアントが要求するまで、最初にCloud SQLまたはデータストアを使用してデータを保存する必要がありますか?これが私がやりたいことのいくつかの不完全なサンプルコードです:
class MainPage(webapp2.RequestHandler):
def get(self):
## This opens the GWT app
class Service_handler(webapp2.RequestHandler):
def get(self, parameters):
## This is called by the GWT app and generates the data to be
## sent to the client.
## A channel API message is sent to the client with the url
## for each data file generated.
class kml_handler(webapp2.RequestHandler):
def get(self, client_id):
## I would like to return the correct data here when it is
## called by the client. Do I need to store the data in
## Cloud SQL or the Data Store and then retrieve it
## or can this handler take the results directly from the
## Service_handler as soon as it is generated?
app = webapp2.WSGIApplication([
webapp2.Route(r'/', handler=MainPage),
webapp2.Route(r'/Service/', handler=Service_handler),
webapp2.Route(r'/_ah/channel/<connected>/', handler = connection_handler),
webapp2.Route(r'/kml/<client_id>', handler = kml_handler)
],
debug=True)