REST与RPC在PHP [关闭](REST vs. RPC in PHP [closed])

2019-06-25 09:55发布

我建立我自己的Ajax网站,和我之间考虑REST和RPC。

如果我的服务器支持的Servlet我刚刚安装持之以恒 ,结束这个问题,但我的服务器不支持Servlet的。

RPC是简单的代码(IMO),并且可以在PHP很容易编写。 所有我需要的是一个数据库查询执行器。 我使用的是Dojo Toolkit的和JSON。

我为什么要选择在RPC或RPC over休息休息?

Answer 1:

呃... ...把​​它简单,都是很抽象的模型......如此抽象,他们自然发生无处不在...

REST是具有资源的想法解决与在一个访问的全局标识符(URI中的HTTP的情况下) CRUD方法(使用POST , GET ,PUT和HTTP的情况下删除......嗯,至少这是这个想法)...

RPC是你调用不同的机器上的程序,并传递一些参数,并采取了返回值的想法...

有维基百科上的一个很好的比较短

持之以恒创建的服务,允许双方(在一个非常优雅的方式,无可否认)...它是基于REST (虽然它不仅使用HTTP的功能来实现这一点),并公开了一个RPC接口...

最后,你应该看看你的程序需要做的......因为大多数人是什么,你可能会风与RPC API(可它基于XML或JSON或其他),其包括用于传输层部分的RESTful子系统...这是,因为具有RESTfulnes,意味着灵活性...客户端是否可以或多或少地自由穿过服务器上的数据(通过一组简单的CRUD方法),它不依赖于有限的(问题专用)设定的通过API公开的方法,你可以转移逻辑clientwards ...



Answer 2:

了解它的最好办法是阅读罗伊T. Fielding的就可以了论文,或在他的相关文章博客在那里他讨论纯REST和RPC简单的架构之间的差异。

另外要注意的是,在REST Wikipedia文章是令人沮丧的状态和防守自己,其余的“发明家”,表明该报道是不正确的。

人REST错过最重要的事情就是发现性 - 资源应包括其超内的其他相关资源的URI,而不是依靠URI命名约定,这是出带外和非标准化。

与流行的RPC实现像SOAP或XML-RPC的一个大问题是,他们使用HTTP自己专有的架构之下,而不是采取像HTTP PUT的所有不同特性的优势,获取,删除等,所以这不符合传统的网络堆栈,以及 - 中间缓存服务器无法正常工作,例如,在不知道有关的RPC调用的内容含义。

这是一个不完整的介绍了REST和RPC,但我想我已经强调了,常常错过了重要的点。 要小心,因为有错误的信息,很多在那里对REST。

这就是说,REST不是一切。 这是一个架构,所以它是相当灵活的,你如何实现它。 但是,如果它没有意义访问的事情,主要为资源,那么REST可能不适合,或者它可能只适合你的应用程序,这是很好的部分。



Answer 3:

有三种不同风格的服务:

  • RPC API -客户端发送的程序和参数的服务及服务负责命令的执行并返回结果。
  • 消息API(文献API) -客户端发送的DOM(元素),这通常比RPC API调用更复杂的结构,因为它们往往不直接意味着操作。
  • 资源API -用于访问资源(数据库元组,文件,图像等)。 一般而言,还应该提供良好的媒体类型协商。

SOAP和REST是从标准汇编W3C ,主要区别在于,SOAP使用HTTP,SMTP等作为传输协议和REST使用它作为应用协议,AKA它应该支持(GET,PUT,PUSH,DELETE和POST )。 SOAP还意味着使用XML和REST可以使用任何数据类型(JSON,XML,HTTP等)。 此外,SOAP的主要优点之一是服务描述符(WSDL文件),它给出了自动生成服务连接器(代理)中的给客户端的可能性。

没有一个万能的 ; Web服务的类型和结构都依赖于实际的客户和技术要求。

有关这个问题的总体思路,见Martin Fowler的签名售书一个- 服务设计模式



文章来源: REST vs. RPC in PHP [closed]