2013-05-27 46 views
0

使用Phil Sturgeon的Codeigniter REST SERVER,我設置了一個基本的REST服務器來與Backbone應用程序進行交互。問題是,只要applcation嘗試向適當的URI發出DELETE請求(例如,api/object/7,其中7是所討論的ID號),REST就會返回404 Not Found錯誤。有一點挖掘表明它試圖到達控制器內的nonexistint 7_delete,而不是像它應該那樣調用index_delete。CodeIgniter REST API調用不存在的方法

我檢查了這些請求,並將它們路由到正確的URL;我也檢查過沒有自定義的路線可能會干擾,也沒有。建議?

編輯:對於更詳細地說,骨幹路由設置是這樣的:

urlRoot: 'api/objective/', 

在CI的目的控制器同時被設置這樣的:

class Objective extends REST_Controller { 

    /** 
    * Respond to a POST request; 
    * - If given an ID, update an existing record 
    * - If given no ID, create a new record 
    */ 
    public function index_post() { 
    // code here... 
    } 

    /** 
    * Delete an existing record from a passed URL 
    */ 
    public function index_delete($id) { 
    // Code here... 
    } 

    /** 
    * Get a single record 
    */ 
    public function index_get($id) { 
    // Code here... 
    } 

    /** 
    * Get the full objectives list 
    */ 
    public function index_get() { 
    // Code here... 
    } 
} 

這是接近示例文件中提供的示例。然而,CI路由沒有設置。

+0

網址你能提供一些詳細的代碼? –

+0

@moberemk你如何在CI&Backbone中設置路由? – Adrian

+0

我在上面的帖子中添加了一些細節來回答你的問題。 – moberemk

回答

-1

也許很容易,當你使用這樣http://example.com/api/objective/deletecontent/id/7

public function deletecontent_get() { 
     if(!$this->get('id')) {$this->response(null,400)} 
      $run = $this->some_model->delete_content_by_id($this->get('id)); 
      if($run) $this->response(true,200); 
      else $this->response(null,304); 
    } 
+0

與此相關的問題是,它完全否定了使用REST API的重點,不使用DELETE方法而不是簡單的GET URL。不錯,儘管。 – moberemk