1

我有一个 iPhone 应用程序,它执行对使用 codeigniter 开发的 API 的调用。由于我是该框架的新手,我想知道此类 API 通常位于何处?iPhone 应用程序向 API 请求的 url 如下:

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

我看了一下application/libraries文件夹,里面有一堆 php 文件,比如rest.phpREST_Controller.php. 这些是我要找的文件吗?由于上面的 URL 没有指向特定的文件,如何知道调用的是哪个 API?先感谢您。

4

1 回答 1

6

当使用Phil Sturgeon 的 CodeIgniter Restserver(这似乎是您正在使用的)时,您在application/controllers目录中设置了一个控制器并扩展了他的类。

假设你调用你的控制器Foobar,它看起来像这样:

class Foobar extends Rest_Controller {

  //... your methods here

}

在这种情况下,您将访问此端点http://example.com/foobar


URL 引用您的控制器,而不是直接引用 Rest_Controller。

URL 如下所示:

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

如果未指定方法,则默认为index()


此外,Restserver 允许您将方法映射到 HTTP 请求方法。这样

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

我强烈建议您阅读文档


在您的示例中,您希望被调用的控制器位于application/controllers/site.

但是,这可能已使用 htaccess 重写规则(检查.htaccess文件)或通过重新定义的 CI 路由(检查application/config/routes.php)进行了修改。


如果一切都失败了:

在默认配置下,您应该可以在此处找到它们,但是,CI 对路由的可塑性很强,很难说它们可能在哪里。您最好的选择是在目录中查找单词extends Rest_Controller,因为无论控制器在哪里,它们都会扩展该类。

于 2013-05-02T20:19:25.633 回答