フラスコAPI(バックエンド)とフロントエンドアプリケーションの2つのアプリケーションがあります。最近、私は、フロントエンドがいくつかのデータ(ページ番号)を取得し、その内容を戻すためにAPIを呼び出すことができるように、ストリーミングメカニズムを実装しなければなりませんでした。APIコールに依存するフラスコ応答のストリーミング
ここでは、Flaskで応答をストリーミングする方法について説明したガイドに従っています。
フロントエンドでの私の擬似コードは、基本的に次のようになります。私は、次の手順を実行しgenerate()
内
return Response(stream_with_context(generate()))
:
def generate():
# make blocking api call
data = requests.get(url)
for x in data:
yield x
私は生成された結果が矛盾していることを発見しています。私の直感は、それはブロッキングAPI呼び出しと関係があるということです。ユーザーにストリーミングされたジェネレータ内でブロックされたAPI呼び出しを行うことはできますか?