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