2013-05-02 58 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