NodeJS中 RPC-JSON 基于HTTP的最小程序API接口设计

本文介绍了一个使用NodeJS实现的基于HTTP的RPC-JSON最小服务器端示例,通过miniRpcServer.js文件展示了如何创建简单的API接口。
技术简介
json-rpc是基于json的跨语言远程调用协议,比xml-rpc、webservice等基于文本的协议传输数据格小;
相对hessian、java-rpc等二进制协议便于调试、实现、扩展,是非常优秀的一种远程调用协议。
目前主流语言都已有json-rpc的实现框架,java语言中较好的json-rpc实现框架有jsonrpc4j、jpoxy、json-rpc。
三者之中jsonrpc4j既可独立使用,又可与spring无缝集合,比较适合于基于spring的项目开发。
一、JSON-RPC协议描述
json-rpc协议非常简单,发起远程调用时向服务端传输数据格式如下:
   { "method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1}
参数说明:
method: 调用的方法名
params: 方法传入的参数,若无参数则传入 []
id : 调用标识符,用于标示一次远程调用过程
服务器其收到调用请求,处理方法调用,将方法效用结果效应给调用方;返回数据格式:
 {   
    "result":          "Hello JSON-RPC",         
    "error":                null,       
      "id":                      1
 }                        
参数说明:
result: 方法返回值,若无返回值,则返回null。若调用错误,返回null。
error :调用时错误,无错误返回null。
id : 调用标识符,与调用方传入的标识符一致。
以上就是json-rpc协议规范,非常简单,小巧,便于各种语言实现。

传到服务器端的数据格式如下:
/work/addComment
HTTP/ 1.1
HOST: api .example .com
Content-Type: application/json
{  "method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1}
而响应对象 回应,就大同小异了, rpc-json 中的响应对象包含:
 {"jsonrpc" : "2.0", "result": "","error" : null,"id" : 1 }; 

当成功时,result为返回计算结果,error为null
这里要注意的是当失败时,error应为以下结构:
{"code":-32601,"message": "Method:" + body.method + " is not support", "data":null};
利用nodejs的http库即可轻易地实现基于http的json-rpc服务器端。

以下是我写的Nodejs最小Http rpc-json服务器端:  miniRpcServer.js  可点击下载






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值