新人眼里看起来都是一样啊,都是可以远程 执行/获取/传送数据。
这三者有什么不同的适用领域呢?
API只是一个实现方式,Web Service属于架构里的Web服务,RPC属于Web Service的一种使用方式。
Web Service:
从使用方式上,分为RPC,SOAP,REST;
从数据格式上,分为XML,JSON;
其中,RPC和SOAP的使用在减少,Restful架构占到了主导地位;XML格式的使用在减少,json等轻量级格式的使用在增多。
正如楼上所说,RPC即为远程过程调用,像调用本地服务(方法)一样调用服务器的服务(方法),实现上有XML-RPC,JSON-RPC,只是传输数据格式的不同,使用方式上类似。
JSON-RPC规范:http://json-rpc.org/wiki/specification
XML-RPC规范:http://xmlrpc.scripting.com/spec.html
相对于其他使用方式,RESTful架构最近比较流行,它依赖于HTTP协议,通过HTTP协议里的动作表示对资源的处理(其他使用方式依赖于传输数据里的字段)
关于 REST 介绍的文章已经很多了,这里只对 RPC 部分做一个介绍:
RPC(远程过程调用)是什么
远程过程调用发展历程
早期的 RPC
XML-RPC,SOAP,WebService
PHPRPC
Hessian
JSON-RPC
Microsoft WCF,WebAPI
ZeroC Ice,Thrift,GRPC
Hprose
RPC 即远程过程调用, 很简单的概念, 像调用本地服务(方法)一样调用服务器的服务(方法).
通常的实现有 XML-RPC , JSON-RPC , 通信方式基本相同, 所不同的只是传输数据的格式.
REST 的三个要素是 唯一的资源标识, 简单的方法 (此处的方法是个抽象的概念), 一定的表达方式.
重要的特性:无状态
个人也比较喜欢REST,目前基本主流开放平台都是使用这个(淘宝开放平台/人人网/facebook...)
Web Service 已经是过时之物,平常基本使用甚少,建议不要在折腾它了