你能在PHP中使用REST吗?如果是这样的话?

时间:2009-10-27 03:32:55

标签: php rest restful-architecture

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

5 个答案:

答案 0 :(得分:39)

由于REST是将HTTP协议的相同方法应用于客户端 - 服务器体系结构的设计,因此PHP已经非常适合处理HTTP协议请求,例如GET和POST。 PHP特别适合于轻松开发REST服务。

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

因此,如果您当前的应用程序具有以下功能:

  1. HTML表单
  2. PHP流程
  3. 表格中的HTML输出
  4. 因此,要使其成为REST,您需要:

    1. 接受来自网络的参数。这很简单,因为您将收到参数作为get或post ...所以它基本相同。
    2. PHP流程
    3. JSON XML 输出。就是这样!

      非常简单。

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

      在这种情况下,我建议您查看flickr API作为一个非常适合开发人员的示例,易于猜测并且具有良好的文档。

      有关API的更多信息,请查看此演示文稿:How to Design a Good API & Why it Matters (Joshua Bloch)

      最后一个RESTful API应该在有意义的情况下实现http协议的PUT和DELETE方法

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

      编辑:替换为“Php是默认休息”,“因为REST是HTTP协议的相同方法应用于客户端 - 服务器架构的设计,PHP已经非常好了处理HTTP协议请求,例如GET和POST.PHP特别适合于简化开发REST服务。“

      并且还添加了最后一个注释,即当该操作对您的api有意义时,您应该实现适当的PUT或DELETE方法。

答案 1 :(得分:18)

您可能希望查看本文和后续内容: 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/

答案 2 :(得分:5)

我开发了一个类,它是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键名称和方法名称不区分大小写。)

答案 3 :(得分:4)

回到the original source of the term REST不能伤害,并确保你理解这意味着什么。

答案 4 :(得分:4)

如果您正在考虑客户方面的问题,我建议您查看Matt Sukowski的PEST。

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

同时查看此主题: PHP REST Clients

2013/12/13更新:
这是一个非常活跃的开源项目,Matt Sukowsky今年夏天将其交给了新的看护人,因为他觉得他没有足够的时间,而且从那时起就有很多很多的提交。所以Pest比以往任何时候都更好用PHP做Rest:)