百度百科里对JSON-RPC的定义:
json rpc 是一种以json为消息格式的远程调用服务,它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。这种 可以使用 作为 ,也可以使用其它传输协议,传输的内容是json消息体。
json rpc 和 相比具有很多优点。首先xmlrpc是以 作为消息格式,xml具有体积大,格式复杂,传输占用带宽。程序对xml的解析也比较复杂,并且耗费较多服务器资源。json相比xml体积小巧,并且解析相对容易很多。
Magento原生自带SOAP/XML-RPC(和Rest Api)类型的Api,这几天在Github上闲逛时发现有老外分享了一个Magento的JSON-RPC API adapter,不到一百行代码就实现了这个功能(作者水平高是一方面,另一方面正好展现了Magento的可扩展性)。gihub上的地址:
各个常见语言(java,C#甚至JavaScript)都有针对JSON-RPC的客户端类库,我随手找了一个php的客户端类库做测试,测试代码如下:
include('JsonRpcClient.php');$api = new JsonRpcClient('http://www.magento.dev/index.php/api/jsonrpc');$session = $api->__call('login', array('api123456', 'api1234567'));$result = $api->__call('call', array($session,'catalog_product.info','1'));var_export($result);
这段代码是去获取商品id为1的商品的信息,可以看到调用方式和
SOAP/ XML-RPC非常接近。