我有一个iPhone应用程序,它执行使用codeigniter开发的API的调用。由于我是框架的新手,我想知道这些API通常位于何处?从iPhone应用程序请求到API的URL如下:
http://example.com/site/welcome/admin/api/processingdocuments/
我查看了application/libraries
文件夹,还有一些PHP文件,如rest.php
和REST_Controller.php
。这些是我要找的文件吗?由于上面的URL没有指向特定文件,如何知道正在调用哪个API?提前谢谢。
答案 0 :(得分: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
,因为无论控制器在哪里,他们都会扩展该类。