2017-05-20 11 views
0

私は、Androidクライアント用の標準のGoogle App Engineバックエンドアプリケーションを開発しました。今では、アプリケーションに検索機能があり、1回のリクエストで20の結果を返す予定ですが、次のヒットのためにこれらのレコードを検索して返すように、高度なもの(100など)を検索します。だから、80人のレコードを保存して、同じユーザーがすぐに入手できるようにするための仕組みが必要です。Google App Engine:クラウドエンドポイント内のセッションにアクセスするにはどうすればよいですか?

は、私はそれを検索し、我々はappengine-web.xmlでセッションを有効にすることができますが、私のコードは完全にGoogleのクラウドのエンドポイントである一方で、すべてのセッションへのアクセスがdoPost()doGet()で行われていることが分かった。

は、もう一つがある(春のような) Datastoreといくつかのキャッシュ(Memcacheなど)の両方にデータを保存したいと考えています。

私の最終目標は、このデータを検索セッションに保存することです。私にこれを可能にするメカニズムはありますか?

答えて

0

ここでの通常のアプローチは、ユーザーが同じ結果を「続行」するための次の要求で送信できるコード値を応答に提供することです。これは「カーソル」と呼ばれます。

たとえば、80個のレコードをランダムなキーの下にキャッシュに保存し、そのランダムキーをレスポンスの一部としてユーザーに送信することができます。次に、ユーザーがキーを含む新しい要求を行うと、レコードだけを返して返します。

通常、CookieベースのセッションはAPIではうまく機能しません。彼らは不必要なステートフルさを導入する。

+0

堅牢なアプローチ(サーブレットとgaeセッション(Python)と呼ばれるライブラリ)は、MemcacheとDatastoreを使用してルックアップを行います。そのためにJavaには単一のlibはありません。私は自分自身を書くことを考えていた。キャッシュのみに依存すると、突然消えたときにデータが失われる可能性があります。 –

+0

カーソルが実際に指しているのはあなた次第です。私のポイントは、セッションの代わりにカーソルを使うべきだということです。 –

関連する問題