3

私は標準的な CI Web アプリを持っていますが、バックボーンを使用して混沌とした JavaScript を取得することにしました。認証、change_password、register_member、request_new_password など、さまざまなコントローラー メソッドへのシリアル化されたフォーム/jQuery AJAX 要求が大量にありましたが、代わりに REST がどのように機能するのかよくわかりません。CI に Phil Sturgeon の REST ライブラリを使用しています https://github.com/philsturgeon/codeigniter-restserver

バックボーン モデルごとに異なる API URL を使用する必要がありますか? そして、コントローラーメソッドを実際に呼び出すにはどうすればよいですか?

<?php  
    require(APPPATH.'/libraries/REST_Controller.php');  
    class RestApi extends REST_Controller  
    {  
        function get()  
        {  

しかし、それは404秒です。

少数の HTTP メソッドに基づいた 50 の古いメソッドへのルーティングを置き換える方法がわかりません。バックボーン モデルの名前は、サーバー側の何かと一致する必要がありますか?

4

2 に答える 2

4

関数に index_HTTPMETHOD という名前を付ける必要があります。あなたの例では、次のようになります。

class RestApi extends REST_Controller {
    // this will handle GET http://.../RestApi
    function index_get() {
    }

    // additionally this will handle POST http://.../RestApi
    function index_post() {
    }
    // and so forth

    // if you want to POST to http://.../RestApi/somefunc
    function somefunc_post() {
    }

}
于 2012-10-16T07:26:06.897 に答える
1

モデルのurl属性は、モデルの属性を構成する JSON を返すサーバー側の「url」と一致する必要があります。Backbone.js には、モデルのコレクションの URL をその id 属性と一致させるデフォルトの機能があります。urlRootコレクション外のモデルを操作するために、-functionをオーバーライドすることで、コレクション URL の要件を無視できます。

id 属性からも独立させたい場合は、次のようにurl-attribute/function をオーバーライドして、サーバー上のモデルに一致する独自の URL を提供する必要があります。

url: 'path/to/my/model'

また

url: function() { // Define the url as a function of some model properties
  var path = this.model_root + '/' + 'some_other_url_fragment/' + this.chosen_model_identifier;
  return path; 
}
于 2012-07-02T12:18:33.517 に答える