6

Piston で構築された API を使用して Django アプリを構築しています。すべてを可能な限り DRY に保ち、API を完全に保つために、内部アプリケーションでモデルではなく API を呼び出すようにしたいと思います ( https://github.com/raganwaldのようなプロキシ ビュー コントローラーのようなものです)。 /homoiconic/blob/master/2010/10/vc_without_m.md ですが、今のところすべて 1 つの django インストール上にあります)。したがって、基本的なセットアップは次のとおりです。

Model -> API -> Application -> User Client

いくつかのコア Piston クラスをオーバーロードして、アプリケーションの内部クライアント インターフェイスを作成できますが、Django テスト クライアントを使用して同じことを達成できるかどうか疑問に思っています。したがって、モデルを呼び出すのではなく、記事を作成するには、次のように実行します。

from django.test.client import Client
c = Client()
article = c.post('/api/articles', {
  'title' : 'My Title',
  'content' : 'My Content'
})

テストクライアントを使用してこれを行うべきではない理由はありますか? (たとえば、パフォーマンス) この特定の目的により適した、より優れたツールはありますか?

4

1 に答える 1

9

TestClient のコードを確認したところ、テストに関連する追加のオーバーヘッドはないようです。むしろ、内部要求の基本的なクライアントとして機能します。テスト クライアントを内部クライアントとして使用し、Piston の DjangoEmitter を使用して API からモデル オブジェクトを取得します。

内部リクエスト メカニズムがパフォーマンスに大きな影響を与えているかどうかは、テストによってのみわかります。

于 2011-01-02T16:08:21.273 に答える