我正在开发自己的PHP库,我想从我的API调用RESTful Web服务.这可以在PHP中完成,如果是这样,这样做的基础是什么?
由于REST是将HTTP协议的相同方法应用于客户端 - 服务器体系结构的设计,因此PHP已经非常适合处理HTTP协议请求,例如GET和POST.PHP特别适合于轻松开发REST服务.
记住REST是已经存在的相同http模式的应用程序.
因此,如果您当前有一个应用程序执行以下操作:
HTML表单
PHP流程
表格中的HTML输出
因此,要使其成为REST,您需要:
接受来自网络的参数.这很容易,因为您将收到参数作为get或post ...所以它基本相同.
PHP进程
以JSON或XML输出.就是这样!
很容易.
现在困难的部分是使您生成的API(函数和URL)对程序员友好.
在这种情况下,我建议你看一下flickr API作为一个例子是非常开发人员友好容易猜测和具有良好的文档.
有关API的更多信息,请参阅此演示文稿:如何设计良好的API及其重要性(Joshua Bloch)
最后,一个RESTful API应该在有意义的时候实现 http协议的PUT和DELETE方法
例如,如果您的api中有删除操作,则说服务应该从http协议接收删除方法.而不是发送动作参数作为发布请求的一部分更常见的事情.
编辑:替换"Php是默认休息","因为REST是HTTP协议的相同方法应用于客户端 - 服务器体系结构的设计,PHP已经非常好地处理HTTP协议请求,如GET和POST. PHP特别适合于轻松开发REST服务."
并且还添加了最后一点,即当该操作对您的api有意义时,您应该实现适当的PUT或DELETE方法.
您可以查看本文和后续文章:http: //www.gen-x-design.com/archives/create-a-rest-api-with-php/
您的问题非常开放,因此本教程可能是最佳起点.
上面的链接不再有效,请查看本教程:
http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/
我开发了一个类,它是PHP本机SoapServer类的REST等价物.
您只需包含RestServer.php文件,然后按如下方式使用它.
class Hello { public static function sayHello($name) { return "Hello, " . $name; } } $rest = new RestServer(Hello); $rest->handle();
然后你可以这样打电话:
http://myserver.com/path/to/api?method=sayHello&name=World
(请注意,查询字符串中提供params的顺序无关紧要.此外,param键名称和方法名称不区分大小写.)