2013-05-02 60 views
1

我有一個iPhone應用程序,它執行對使用codeigniter開發的API的調用。由於我是框架新手,我想知道這些API通常位於哪裏?從iPhone應用程序的API請求的URL如下:來自框架外部的調用codeigniter API

http://example.com/site/welcome/admin/api/processingdocuments/

我上了application/libraries文件夾看看,有PHP文件一樣rest.phpREST_Controller.php一個替補。這些是我正在尋找的文件嗎?由於上面的URL沒有指向特定的文件,因此如何知道哪個API被調用?先謝謝你。

回答

6

當使用Phil Sturgeon's CodeIgniter Restserver(這看起來你正在使用),你在application/controllers目錄中設置一個控制器並擴展他的類。

比方說,你打電話給你的控制器Foobar,它看起來像這樣:

class Foobar extends Rest_Controller { 

    //... your methods here 

} 

在這種情況下,你會http://example.com/foobar


訪問此端點的URL引用您的控制器和直接不是Rest_Controller。

網址看起來像這樣:

http://example.com/{controller}/{method}/{param1}/{param2}/.../{paramN} 

如果未指定方法,則默認爲index()


此外,Restserver允許你映射方法的HTTP請求方法。這樣

GET example.com/foobar將映射到方法index_get() POST example.com/foobar將映射到方法index_post() ..和等。

我強烈建議你閱讀documentation


在你的榜樣,你會期望被調用時,位於application/controllers/site控制器。

但是,可能已使用htaccess重寫規則(檢查.htaccess文件)或通過重新定義的CI路由(檢查application/config/routes.php)對此進行了修改。


如果一切都失敗:

在默認配置,這是你應該找他們,然而,CI是很好的延展性與路線,這是很難說的,他們可能是。你最好的選擇是grep extends Rest_Controller這個詞的目錄,因爲無論控制器在哪裏,他們都會擴展這個類。

+0

嗨,Thanx爲這個詳細的答案。一些筆記雖然,爲什麼我沒有得到應用程序/控制器文件夾下的一些控制器文件?那裏只有'index.php文件。 – Malloc 2013-05-02 21:20:39

+0

請參閱編輯我的答案 – xbonez 2013-05-02 23:39:17