具有codeigniter的RESTFul Web服务

时间:2012-11-20 04:31:26

标签: php codeigniter rest

我可以使用post方法进行创建和更新吗?

我尝试过“PUT”方法来更新资源,但我没有在服务器端获取参数。

2 个答案:

答案 0 :(得分:1)

PUT不是通过PHP本地处理(即$ _PUT),也不是通过CodeIgniter处理的。我要做的两件事:1)抓住你自己的PUT变量或2)使用Phil Sturgeon的REST库。

//put an associative array into $post_vars variable
parse_str(file_get_contents("php://input"),$post_vars);

来源:http://www.lornajane.net/posts/2008/accessing-incoming-put-data-from-php

但是,由于您正在使用CodeIgniter,如果您找不到真正的理由,您应该使用Phil Sturgeon的库。经过尝试,验证并测试并处理了所有HTTP动词。

https://github.com/philsturgeon/codeigniter-restserver

答案 1 :(得分:0)

是。由于缺少PUT或DELETE方法的一致客户端实现,标准做法是发送POST请求,并且A)使用查询字符串参数(即?_method=PUT)或B)发送X-METHOD-OVERRIDE标头。

(快速Google搜索返回此内容:http://www.endurasoft.com/Blog/post/X-HTTP-Method-Override.aspx

您可能需要扩展CI_Input类以了解创建操作和更新之间的区别。