你可以在PHP中使用REST吗? 如果这样怎么样?

我正在开发自己的PHP库,我想从我的API调用REST风格的Web服务。 这可以在PHP中完成,如果是的话,这样做的基础是什么?

由于REST是HTTP协议的相同方法在客户端 – 服务器体系结构的devise中的应用,并且PHP已经非常适合处理诸如GET和POST之类的HTTP协议请求。 PHP特别适合于简化开发REST服务。

请记住,REST是已经存在的相同http模式的应用程序。

所以如果你现在有一个应用程序可以做如下的事情:

  1. HTML表单
  2. PHP过程
  3. 表格中的HTML输出

所以为了使它REST你需要:

  1. 接受来自networking的参数。 这很容易,因为你将得到的参数要么得到或后…所以它是基本相同的。
  2. PHP过程
  3. JSONXML格式输出。 就是这样!

    很简单

现在困难的部分是使您的API(函数和URL)生成为程序员友好的。

在这种情况下,我build议你看看flickr API作为一个例子是非常容易被开发人员猜测,并有很好的文档。

有关API的更多信息,请参阅此演示文稿: 如何devise良好的API及其重要性(Joshua Bloch)

最后一个RESTful API也应该实现http协议的PUT和DELETE方法

例如,如果您在api中执行了删除操作,则所述服务应该从http协议接收删除方法。 发送操作参数作为发布请求的一部分,而不是常见的事情。

编辑:replace为“由于REST是HTTP协议的相同方法在客户端 – 服务器体系结构的devise中的应用”,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 

(请注意,在查询string中提供params的顺序并不重要,而且param键名和方法名也是不区分大小写的。)

不能伤害回到术语REST的原始来源 ,并确保你明白这是什么意思。

如果你正在考虑事情的客户端,我会build议检查马特Sukowski的PEST。

您将在GitHub上find存储库: https : //github.com/educoder/pest

另外看看这个线程: PHP REST客户端

更新2013/12/13:
这是一个非常现实的开源项目,Matt Sukowsky今年夏天把它交给了新的pipe理员,因为他没有觉得自己可以腾出足够的时间,从那以后就有了很多的提交。 所以害虫是比以往更好的rest在PHP中:)