我是网络服务的新手。据我所知,restful服务是一种实现分布式计算的方法。我知道RMI也是一种实现这一目标的方法,以及SOAP等许多其他技术。现在我的问题是,我对互联网上的宁静网络服务非常钦佩。但据我所知,Restful只能包含对象的状态。它不能包含功能。是不是?我弄错了吗?如何才能实现分布式计算呢?为什么每个人都说它比RMI或SOAP更好呢?
答案 0 :(得分:0)
休息的基础是资源 - 不要与对象'混淆。 - 和动词。 A"资源"是任何有URI的东西," POST"动词明确地用于提交要处理的数据,没有定义这个"处理"包括:
POST方法请求目标资源进程 根据资源包含在请求中的表示 拥有特定的语义
https://tools.ietf.org/html/rfc7231#section-4.3.3(强调是我的)
rfc也非常明确地指出,成功的帖子不一定会导致新资源的创建:
如果已在源服务器上创建了一个或多个资源作为 成功处理POST请求的结果(...)
注意" if" ...
拥有一个资源,其目标是运行一些计算并返回结果而不创建任何新资源(实际上这应该使用GET请求FWIW,cf搜索引擎等)或启动一些资源是完全合法的业务流程或任何可能以某种方式改变应用程序状态的行为。
至于"为什么每个人都说它比RMI或SOAP"更好,试着自己实现一个SOAP服务和一个SOAP客户端,你就会发现那里有' sa 很多的开销意味着,除了使用普通的API之外,你不一定会购买更多东西。
答案 1 :(得分:0)
你是对的。它不包含功能。只保存数据。
人们对RMI / SOAP关于功能/操作的说法很容易管理,因为您不必担心要执行的功能/操作。 RMI旨在调用远程计算机中的功能。并且SOAP消息具有确定功能的显式操作和数据。虽然RMI和SOAP不同。
但是您可以使用REST轻松实现此类功能。 您只拥有REST数据。数据可以表示功能/操作标识,包括功能/操作的数据。您只需要考虑它。虽然REST的工具/库对于开发/维护分布式服务来说是巨大的。