当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《你能在PHP中使用REST吗?如果是这样的话?》经验,为你挑选了3个好方法。

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



1> elviejo79..:

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

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

因此,如果您当前有一个应用程序执行以下操作:

    HTML表单

    PHP流程

    表格中的HTML输出

因此,要使其成为REST,您需要:

    接受来自网络的参数.这很容易,因为您将收到参数作为get或post ...所以它基本相同.

    PHP进程

    JSONXML输出.就是这样!

    很容易.

现在困难的部分是使您生成的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方法.


@James Black StackOverflow使得重写url重写的事实并没有使它或多或少地成为REST.so.com/questions/1628628是一个有效的REST调用,如下所示:so.com/questions.php?id = 1628628两个调用都使用http协议的get方法.
-1:抱歉,默认情况下没有语言是REST.例如,在REST中,POST请求与GET非常不同,您还需要支持DELETE和PUT.

2> James Black..:

您可以查看本文和后续文章: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/



3> Jake Sankey..:

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

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有