1

我将此Restserver与 CodeIgniter 结合使用。

它似乎工作得很好,除非我使用这样的 URL;mydomain.com/api/example/1234/

其中 1234 是我请求的 ID。

像这样的代码似乎不起作用:

class Example extends REST_Controller {
    public function index_get() {
        print($this->get("example"));
    }
}

它是 GET 还是 POST 请求似乎并不重要。一定有一种方法可以让我从 URL 中检索 ID ..

4

2 回答 2

0

URL 的段应该等于这些:

api = Controller
example = Resource

参数必须在键值对中:

id = Key
1234 = Value

似乎您的 1234 被当作钥匙,但没有任何价值。尝试将您的 URL 更改为以下内容:mydomain.com/api/example/id/1234/,这将转换为:mydomain.com/controller/resource/key/value/

这里还有一个非常详细的教程:http: //net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/

编辑: 由于您的控制器位于子文件夹中,因此您的 URL 段应按如下方式构造:

api/example = Controller
user = Resource // basically the method name + the http method e.g. user_get(), or user_post(). I just made 'user' up, for your app can be whatever it is that people will access via your api

参数必须作为键值对提供:

id = Key
1234 = Value

那么您的 URL 将如下所示:mydomain.com/api/example/user/id/1234/

于 2013-01-30T17:46:11.167 回答
0

在 GET REQUEST 的情况下,您只需在函数的标头中定义参数,如下所示:

public function index_get($param) {
    print($param);
}

如果你想让它成为可选的,那么:

public function index_get($param="") {
    if ($param=="") {
       print("No Parameters!");
    } else {
       print($param);
    }
}

如果我想发送“POST”参数,我只需创建一个 POST METHOD 并接收它们......

public function index_post() {
$params = $this->post();
if (isset($param['id'])) {
   print($param['id']);
} else {
   print("No Parameters!");
}

}

于 2019-03-06T13:15:36.607 回答