Tag: nusoap

RESTful和SOAP Web服务在实践中有何不同?

我正在为PHP应用程序实现Web服务,并试图了解标准Web服务和RESTful Web服务所提供的内容。 我的目的是编写包装器代码以抽象出Web服务细节,以便开发人员可以“实例化远程对象”并使用它们。 以下是我的想法,也许你们中的一些人可以添加你的经验并扩展它: RESTful Web服务 基本上只是“按需提供XML源”,因此您可以为客户端应用程序编写包装器代码,以便它可以通过以下方式查询服务器应用程序: $users = Users::getUsers(“state = ‘CO'”); 这将反过来从远程URL获取XML提要 $ users可以被制作成完整User用户对象的集合,或者 保留为XML,或 变成arrays等 查询脚本(“state =’CO’”)将在服务器端转换为SQL RESTful Web服务通常只能从客户端的视图中读取,尽管您可以编写可以使用POST或GET在服务器上进行更改的代码,例如传递加密令牌以确保安全性,例如: $ users = Users :: addUser($ encryptedTrustToken,’jim’,$ encryptedPassword,’James’,’Taylor’); 这将在服务器应用程序上创建一个新用户。 标准Web服务 标准Web服务最终基本上做同样的事情。 他们的一个优势是客户可以通过WSDL发现他们的细节。 但除此之外,如果我想编写允许开发人员远程实例化,编辑和保存对象的包装代码,我仍然需要实现包装器代码。 SOAP不会为我做任何事情,它可以做到这一点: $soap = new nusoap_client(‘http://localhost/test/webservice_user.php?wsdl’, true); $user = $soap->getProxy(); $lastName = $user->lastName(); 但如果我想编辑并保存: $user->setLastName(‘Jones’); $user->save(); 然后我需要例如处理服务器端的所有状态,SOAP似乎并没有为每个客户端在服务器端保存该对象。 也许我正在使用的PHP SOAP实现存在限制(nusoap)。 也许Java和.NET实现可以做得更多。 很乐意听取您的反馈意见,以清理其中的一些云。