Web services 将遗留RPC样式的服务切换到REST有什么好处?
我正在维护一个充满RPC风格*web服务的遗留应用程序。例如,我们有以下用于从系统中创建和删除用户的服务:Web services 将遗留RPC样式的服务切换到REST有什么好处?,web-services,rest,architecture,rpc,Web Services,Rest,Architecture,Rpc,我正在维护一个充满RPC风格*web服务的遗留应用程序。例如,我们有以下用于从系统中创建和删除用户的服务: 客户端通过HTTP POST提交XML数据来调用这些服务。XML请求包含服务器处理请求所需的所有信息(即身份验证信息、用户信息)。然后,服务器用包含客户机应该知道的任何信息(例如成功/失败标志和描述)的XML文档进行响应 我感兴趣的是,将这些RPC样式的服务切换到更RESTful的体系结构有什么好处。据我所知,这意味着: 要创建用户,客户机仍然需要通过HTTPPOST提交XML数据
所以,对我来说,休息就是你所做的,为了通过网络协议向尽可能广泛的受众展示你的好东西 如果您想让范围非常广泛的客户机能够与您的服务对话,而您还没有注意到soap-y web服务客户机几乎普遍存在,那么您可能会认为REST客户机将为您提供更多的互操作能力 换句话说,你忠实的通讯员并不相信通常支持完整的“菲尔丁论文”超媒体uber-alles REST理论的论据——将整个协议表示为一组HTTP事务,这些事务甚至一点都不像RPC
然而,使用基于http和json的简单得多的协议来提供RPC API(Roy Fielding嘲笑它不是真正的REST)有一些严重的优点。一个完整的SOAP-y web服务堆栈是一个巨大的东西,它承载着一大堆愚蠢的XML包袱,而这些包袱是由web服务是根据任意复杂的XML文档而不是逻辑参数的集合来定义的。“纯粹的RPC”‘rest’服务避免了所有这一切。从实用和实用的角度来看,在不了解应用程序的情况下,转换为rest不会给您带来什么好处,特别是考虑到潜在的开发工作 你有庞大的客户群吗?你有很多服务器吗 REST的一个关键属性(但不是唯一的,甚至不是必需的,而是…)是它如何利用HTTP缓存 你在做缓存吗?这对你来说有什么大不了的吗?它适用于公共互联网上的大型系统 如果您不使用缓存,并且您认为它不会给您带来多大好处(例如,您没有太多的客户端,您的服务器没有过度饱和,您的内容根本不适合,等等),那么REST可能甚至不值得追求,因为其他好处比缓存少得多 如果您只是在HTTP上发布POX(纯OLXML)(或JSON),并且这对您来说很好,那么我就不会担心了 当然,HTTP还有其他好处,包括它的媒体类型、内容协商、缓存和位置头等等。但是,说真的,如果您没有看到在API中做很多这方面的工作,那就不用麻烦了 如果缓存可以帮助您,那么就值得更全面地使用HTTP协议和堆栈,但没有理由为此而使用REST体系结构。HTTP上的缓存POX也不是REST。它是通过HTTP的 这就是所有SOAP和XML-RPC都是…POX over HTTP,只是SOAP XML带来了几个非常厚的标准 如果你是一个大型的服务组织,有一个10年的计划,那么你可能想考虑迁移到一个完整的船休息架构,因为这是它在wo中真正的位置