2010-11-30 23 views
1

最初はCodeIgniterを使用してプロジェクトを作成しましたが、私たちが持っていた短い話を短縮するために、Webインターフェイスを介して外部NASをデータベースに接続するためにAPIを呼び出す外部ソースからの一般的なハッキングを避けるためにAPIキーにアクセスする必要があった一連のURL。CodeIgniterからDjangoにAPIを移動する最善の方法

APIは、NASが(注文の管理、データ/画像のアップロードなど)さまざまな作業を行っていたため、いくつかのコントローラ(注文、画像など)がありました。APIフォルダApiControllerはちょうどそれがアクセスしようとしたショップに対するAPIKEYを確認どこ

class Orders extends ApiController { 

function Orders() 
{ 
    parent::ApiController();  
} 

function get_paid() 
{ 
    $shop = self::get_shop(); 

    $this->load->model('order'); 
    echo json_encode($this->order->by_status($shop->shop_id, Order::STATUS_PAID)); 
} 
} 

controllers/apiv1/ 
    orders.php 
    images.php 
    ... 

本の線に沿って何かを:このような何かに見えました。

私たちはプロジェクトをDjangoに移しています。私はこのapiをもう一度セットアップする方法を考えていました。私は、プロジェクトのAPIアプリケーションを作成し、モデルをviews.pyにインポートしてすべての機能を作ってみることを考えていましたが、私の問題は、すべてをきれいに分割する方法があります。 )?または、私はちょうどviews.pyすべてがいっぱいで、URLのそれについて心配する必要があります。

もっと良い方法がありますか?可能であれば、apiをapi/v1、api/v2などのバージョンに分けて、新しいAPIにURLをルーティングして古いものに影響を与えないようにしたいと考えています。さまざまなバージョンのAPIを使用しているさまざまなNASを使用している場合、これは便利です(理由の説明が難しい...)

答えて

2

Django PistonまたはDjango-tastypieのようなものを使用して、 大きな通常のDjangoビューを使用する利点は、JSON/Yaml/XMLへのCRUDとシリアライズの大半が得られることです。

Tastypieには、shared-secret key authentication機構が組み込まれており、ピストンと同等のコードを見つけることは難しくありません。

EDIT:最近、私は最近、ピストンとタスティピーの両方で作業してきました。私はTastypieがセットアップが簡単で、コードベースがより洗練されていることがわかります。それは、それが私が現時点でそれを使用することが不可能になるいくつかの機能(1.0に来ている)が欠けていると言いました。ピストンはあなたが必要とするものに靴ひもをつけるのがとても簡単ですが、コードが停滞しているように見えますが、作者は未解決の問題について非常に敏感ではないようで、おそらくあなたが必要とするバグ修正アプリケーションが正しく動作するようにします。理想的な状況ではありません。

+0

ありがとうございます。それを調べます –

+0

あなたは大歓迎です。ちょうどあなたがどちらかのために行くことを決める前に私の編集を見ることができることを祈ってください:) – dguaraglia

+0

乾杯は、私が選択する前に両方の適切に調べます。私はtastypieの外観が好きです、そして、私たちがやっていることは、それ以上のものに見えます –

関連する問題