0

Phil Sturgeon のCodeigniter REST SERVERを使用して、バックボーン アプリケーションと対話する基本的な REST サーバーをセットアップしました。問題は、アプリケーションが適切な URI (たとえば、api/object/7 で、7 は問題の ID 番号) に対して DELETE 要求を作成しようとするたびに、REST が 404 Not Found エラーを返すことです。少し掘り下げたところ、本来なら index_delete を呼び出すのではなく、コントローラー内の存在しない 7_delete に到達しようとしていることが明らかになりました。

リクエストを確認したところ、正しい URL にルーティングされています。また、干渉するカスタムルートが設定されておらず、何もないことも確認しました。提案?

編集: 詳細については、バックボーン ルーティングは次のように設定されます。

urlRoot: 'api/objective/',

一方、CI の Objective コントローラーは次のように設定されます。

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 ルーティングには何も設定されていません。

4

1 に答える 1

-1

このようなURLを使用すると簡単かもしれません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);
    }
于 2013-09-13T19:59:54.520 に答える