2012-01-27 7 views
0

私は小さなWebサービスを構築しています。サービスが何をすることができるかを紹介するために、軽量インターフェイスを構築します。私はREST APIと通常のDjangoビューがうまく一緒に遊ぶことができるかどうかを調べるのに苦労しています。同じプロジェクト内のdjangoビューからdjango-piston REST APIにアクセスする

、単純なCRUD REST Webサービスを構築するためにジャンゴ・ピストンを使用した:

は、ここに私のセットアップです。
httplib2でDjangoビューを使用して、そのWebサービスとの間でGET/POSTを実行します。
両方とも同じDjangoプロジェクト(したがって同じWebサーバー)から実行されています。

今はブラウザで簡単に読み込みRESTサービスが動作しています。しかし、Djangoビューからhttplib2を使用しようとすると、リクエストがハングするだけです。

私の質問:
- 私はこれについて正しく考えていますか?
- これを実現するにはより良い方法がありますか?
- REST WebサービスをRESTインターフェイスとは別のプロジェクト(およびWebサーバー)にする必要がありますか?

ご協力いただければ幸いです!

+0

私の推測では、現在のリクエストハンドラを実行するスレッドと同じスレッドで別のリクエストをAPIに送信するため、ブロックされていると思います。私はあなたのAPIを直接HTTPを経由せずに実装するコードを呼び出します。 – akonsu

答えて

1

通常、ライブビューではなく単体テストで動作するAPIをデモンストレーションしますが、必要なものではない可能性があります。

この問題のローカルデベロッパーが発生している場合は、ビューが実行されている間にAPIが実行されないようにするシングルスレッドのdevserverです(上記のakonsuのコメントに沿っています)。

runserverのマルチスレッド版を試しましたか? Like this one?

+0

ありがとうございます。マルチスレッド実行サーバーは、この問題を解決しました。 – tabdon

関連する問題