在我的网页上,如果希望显示动态下拉列表(例如,基于所选国家/地区的城市名称),则可以使用AJAX进行。但是我也可以使用REST调用来做到这一点。那我应该使用哪个呢?
我的问题是我真的没有得到REST和任何其他HTTP浏览器请求(也就是表单提交)之间的区别。我查看了REST的正式定义,它似乎与HTTP请求相同。那么REST与AJAX本质上有何不同?
在我的网页上,如果希望显示动态下拉列表(例如,基于所选国家/地区的城市名称),则可以使用AJAX进行。但是我也可以使用REST调用来做到这一点。那我应该使用哪个呢?
我的问题是我真的没有得到REST和任何其他HTTP浏览器请求(也就是表单提交)之间的区别。我查看了REST的正式定义,它似乎与HTTP请求相同。那么REST与AJAX本质上有何不同?
Answers:
我可以使用AJAX来完成。但是我也可以使用REST调用来做到这一点。
不。那两个是完全正交的。如果你想与你有从服务器获取数据来更新你的页面,你会使用AJAX做到这一点。没有别的办法了。而且该AJAX调用可以使用REST或其他方式。
我的问题是我真的没有得到REST和HTTP浏览器请求之间的区别。(aka表单提交)。我看过REST的正式定义,它看起来像一个HTTP请求。
甲REST呼叫是一个HTTP请求,总是。尽管它可以用于处理常规的浏览器调用(如表单提交)并返回完整的HTML页面,但通常用于处理仅返回数据的API调用(通常为JSON格式)。
那么为什么有一个单独的名字呢?
因为REST是使用HTTP的一种特定样式,所以可以说它原本是要使用的,但是大多数人没有“理解”它,因此近二十年来很少使用。
具体地说,REST意味着对要在URL本身中检索或操作的实体进行编码(通常通过ID),并对要使用的HTTP方法(对GET进行检索,对POST进行更改,对PUT进行创建)要对它执行什么操作进行编码。 ,DELETE(删除)。
好吧,我认为您首先需要了解AJAX和REST并不是您的用例的替代品。AJAX代表异步javascript和XML,因此,如果您在浏览器请求完成后使用javascript加载数据,则您正在执行AJAX。
另一方面,REST代表表示状态传输,正如Stefan Billet指出的那样,REST使用HTTP请求来传输数据。因此,REST实际上是使用AJAX的一种方法。SOAP将是另一种,但是这对于您的问题来说是不可能的。因此,您的问题应该是:“哪种技术最适合我的用例?”
在这种情况下,我建议考虑下拉菜单中使用的数据量。如果只有很少的元素,则可以将它们全部包含在页面中,而只需使用javascript即可显示适当的元素。第二种选择可能是使用REST调用并以JSON作为表示形式,因为它很容易与javascript一起使用并且非常轻巧,这当然也意味着要进行AJAX。
REST使用HTTP动词GET,POST,PUT,DELETE分别获取,插入,更新,删除服务器上的资源。例如使用url的GET:controller / customer / {id}
替代方法是向控制器添加方法,例如GetCustomerById(id),InsertCustomer(客户),UpdateCustomer(客户),DeleteCustomer(客户)。这就是所谓的RPC方法。例如,带有url的GET:controller / GetCustomerById?id = {id}
其中之一是,REST api是可预测的。如果您了解REST并且知道所需资源的名称(例如,客户),那么您可以立即加入并使用带有标准动词的REST控制器。
使用RPC方法时,您需要知道控制器上使用的方法,它们采用的参数的种类等。这些签名可能因控制器而异,因应用程序而异。
另一方面,AJAX只是放置上述请求的异步方式,无论是作为REST调用还是RPC调用。