Jquery RESTWeb服务与类似RPC的服务的区别是什么?

Jquery RESTWeb服务与类似RPC的服务的区别是什么?,jquery,ajax,json,rest,rpc,Jquery,Ajax,Json,Rest,Rpc,我有一个web应用程序,它使用AJAX从服务器获取JSON数据。它要求用户首先使用浏览器登录,以便可以设置cookie。仅使用GET和POST动词,其中GET用于检索数据,POST用于修改数据的任何操作 据我所知,REST与上述方法的不同之处在于,用户身份验证信息随每个请求一起发送,并且还使用PUT和DELETE动词 我的问题是,如果端点仅仅是用户的浏览器,RESTWeb服务比类似RPC的方法有什么好处?我可以理解,当客户端未知时,REST是如何发挥作用的,但是当我只使用jQuery ajax调

我有一个web应用程序,它使用AJAX从服务器获取JSON数据。它要求用户首先使用浏览器登录,以便可以设置cookie。仅使用
GET
POST
动词,其中
GET
用于检索数据,
POST
用于修改数据的任何操作

据我所知,REST与上述方法的不同之处在于,用户身份验证信息随每个请求一起发送,并且还使用
PUT
DELETE
动词


我的问题是,如果端点仅仅是用户的浏览器,RESTWeb服务比类似RPC的方法有什么好处?我可以理解,当客户端未知时,REST是如何发挥作用的,但是当我只使用jQuery ajax调用时,与类似RPC的方法相比,REST的好处是否仍然值得呢?

关于REST与调用对象的耦合性较低的说法是正确的-如果您将其与需要从服务器调用WSDL文件的SOAP web服务进行比较,与yes相比,RESTWeb服务耦合性更小(即在调用web服务之前不需要了解它)。大多数情况下,令牌需要与对给定“表示”的请求一起传递

我认为使用来自ajax的REST并没有多大好处,事实上,根据您正在处理的API,您可能需要一个令牌,该令牌在使用基于SOAP的web服务时作为URI参数(querystring参数)传入,这是不必要的。实际上,将soapweb服务与ajax调用结合起来,以JSON格式传递数据,并将JSON反序列化为服务器端的对象是非常容易的。最重要的是,jQuery使所有这些都变得非常简单。

这样想——重要的是功能,还是信息

当您处理REST时,您正在处理一种信息状态——您查看当前信息是什么(GET),或者更改特定文档(POST、DELETE),或者创建一个新文档(PUT)

对于RPC,它是关于过程/函数/方法/操作。。。不管你用什么语言称呼他们。这些信息只是在服务上操作或从服务返回的信息。。。但它可能是众多事件中的一个。我们可能正在搜索并返回项目列表。或者我们可能正在谈判一些我们需要来回互动的事情。(REST的协商大部分是通过HTTP处理的,因此您必须使用Accept和Accept语言头)但更重要的是操作

还有第三种类型,即文档/文字SOAP。。。其中重要的是消息,您必须猜测调用的函数是基于消息的。如果你只是处理积垢操作,这可能没问题。在本例中,与REST相比,它的优点是您仍然可以拥有WSDL,因此您可以提前知道需要发送什么元素,以及期望得到什么回报


他们都在工作。。。这主要是关于您如何看待这个问题,以及如何将您已经拥有的转换为API是多么容易。如果你是从头开始,你可能会想做什么就做什么。我个人喜欢SOAP(document/lit或RPC),因为我可以提供一个WSDL文件,有人可以使用它来引导他们的客户机。我曾经有过这样的案例,人们在几个小时内进行了认真的询问。(解释API的一些抽象微妙之处,例如发送空字符串和空字符串之间的区别需要一些时间,但如果使用REST,我也会遇到同样的问题)

REST和RPC之间的一个重大区别是REST完全是关于资源的,而RPC更多是关于操作的。例如,使用真正的RESTful服务,您永远不会调用类似或的东西。使用RESTful服务,您只能引用URL中的资源,然后使用HTTP谓词和请求主体定义如何处理该资源。因此,对http:/domain.com/service/jason的GET请求应该返回有关资源(jason用户)的信息。你可以说得更具体一些,但结果应该是一样的。如果您要添加一个名为jason的用户,您将使用完全相同的URL,但是您将使用PUT动词,请求的主体将包含额外的数据。要删除jason资源,请再次使用完全相同的URL()和delete动词。要更新,请使用POST动词

REST对于您打算供其他开发人员使用的面向公众的API来说是非常好的。它们可以变得非常标准,因此它们不需要大量关于服务的现有知识来使用。无WSDL调用等。由于无状态性,它还可以使它们在部分网络故障期间更稳定

从您描述的内容来看,我认为您不需要真正的RESTful服务。但是,如果你需要一个更标准的API,你可能需要考虑一下。我为一个仅用于内部使用的项目创建了一个REST服务,但这是因为我打算从几十个其他服务访问该服务,将来可能从其他开发人员访问该服务。因此,尽管一开始我只是在几个项目中使用它,但最终的目标需要一个更标准的接口。

REST最好描述为与资源一起工作,而as-RPC更多的是关于操作

休息: 代表代表性状态转移。这是一种组织独立系统之间交互的简单方法。 RESTful应用程序使用HTTP请求发布数据(创建和/或更新)、读取数据(例如进行查询)和删除数据。因此,REST将HTTP用于所有四个CRUD(创建/读取/更新/删除)操作

RPC: RPC基本上用于跨不同模块进行通信