RPC与REST:架构风格对比及应用分析
1. RPC与REST的对比
从技术角度看,比较RPC和REST架构风格并非明智之举,因为这两种服务是相互配合,而非相互比较的关系。在任何RPC实现之上,都可以通过符合REST约束的方法构建RESTful服务。例如,在RPC实现之上进行HTTP风格的REST实现,会创建GET、POST、PUT和DELETE方法,这些方法接收元数据以镜像某些HTTP头,并返回反映确切HTTP请求的字符串。
虽然可以使用XML - RPC构建RESTful接口,但有几个原因表明这不是最佳选择:
- 现有实现可直接利用 :缓存、版本控制和限流已有现成实现,可直接使用。
- 简化开发 :操作由服务器控制,而非在客户端通过过程调用硬编码,从而简化开发。
- 避免构建狭窄接口 :使用自定义过程会导致构建狭窄的RPC接口。
有人可能会问,既然有REST可用,为何还要考虑XML - RPC。编写XML - RPC客户端库更麻烦,但每个库很可能适用于任何类似服务,大多数用户无需自己编写。而编写REST客户端库更容易,但对于REST的实现,几乎每个人都有不同的理解,使用每个服务都需要单独的客户端模块,REST在这方面并无帮助。这表明,虽然REST是更简单的解决方案,但不一定适用于特定情况。
2. REST和XML - RPC的优缺点
| 对比项 | REST | XML - RPC |
|---|
超级会员免费看
订阅专栏 解锁全文
835

被折叠的 条评论
为什么被折叠?



