lua-resty-jsonrpc-server
用于 ngx_lua/openresty 的 JsonRPC 2.0 服务器
$ opm get rryqszq4/lua-resty-jsonrpc-server
lua-resty-jsonrpc-server
lua-resty-jsonrpc-server -- 用于 ngx_lua 的 JsonRPC 2.0 服务器
此 Lua 库是用于 ngx_lua nginx 模块的 JsonRPC 2.0 服务器。
概要
lua_package_path "/path/to/lua-resty-jsonrpc-server/lib/?.lua;;";
server {
location /lua-jsonrpc-server {
default_type "application/json";
content_by_lua '
local jsonrpc_server = require "resty.jsonrpc_server"
local jsonrpc_demo = require "resty.jsonrpc_demo"
local server = jsonrpc_server:new()
local add1 = function(a, b)
return a + b
end
local register = server:register([[addition]], add1)
local binder = server:bind([[addition1]], jsonrpc_demo, [[add1]])
local result = server:execute()
ngx.say(result);
';
}
}
Curl 测试
输入
$ curl -d "{\"jsonrpc\":\"2.0\",\"method\":\"addition\", \"params\":[1,5]}" http://localhost/lua-jsonrpc-server
输出
$ {"result":6,"jsonrpc":"2.0","id":"null"}
方法
new
语法: server, err = jsonrpc_server:new()
register
语法: ok, err = jsonrpc_server:register(procedure, closure)
bind
语法: ok, err = jsonrpc_server:bind(procedure, classname, method)
json_format
语法: ok, err = jsonrpc_server:json_format()
rpc_format
语法: ok, err = jsonrpc_server:rpc_format()
execute_procedure
语法: ok, err = jsonrpc_server:execute_procedure(payload_method, payload_params)
execute_callback
语法: ok, err = jsonrpc_server:execute_callback(method, params)
execute_method
语法: ok, err = jsonrpc_server:execute_method(method, params)
get_response
语法: ok, err = jsonrpc_server:get_response(data)
execute
语法: ok, err = jsonrpc_server:execute()
rpc_error
语法: ok, err = jsonrpc_server:rpc_error(code, message)
Jsonrpc 2.0 错误
// Parse error
{"jsonrpc":"2.0","id":null,"error":{"code":-32700,"message":"Parse error"}}
// Invalid Request
{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"Invalid Request"}}
// Method not found
{"jsonrpc":"2.0","id":null,"error":{"code":-32601,"message":"Method not found"}}
// Invalid params
{"jsonrpc":"2.0","id":null,"error":{"code":-32602,"message":"Invalid params"}}
作者
rryqszq4 <memwared@gmail.com>.
版权和许可
版权所有 (c) 2015, rryqszq4 保留所有权利。
在满足以下条件的情况下,允许以源代码和二进制形式重新分发和使用本软件,无论是否修改:
源代码的重新分发必须保留上述版权声明、此条件列表以及以下免责声明。
二进制形式的重新分发必须在随分发提供的文档和/或其他材料中复制上述版权声明、此条件列表以及以下免责声明。
本软件由版权持有人和贡献者“按现状”提供,任何明示或暗示的担保(包括但不限于对适销性和特定用途适用性的暗示担保)均被排除在外。在任何情况下,版权持有人或贡献者均不对任何直接、间接、附带、特殊、示例性或后果性损害(包括但不限于获取替代商品或服务的费用、使用、数据或利润的损失、业务中断)负责,无论任何责任理论(无论是合同、严格责任或侵权(包括疏忽或其他)),无论因使用本软件而引起或与之相关,即使已告知其发生此类损害的可能性。
作者
赵权 (rryqszq4)
许可证
2bsd
依赖项
luajit >= 2.1.0, nginx >= 1.6.3
版本
-
用于 ngx_lua/openresty 的 JsonRPC 2.0 服务器 2016-09-29 07:18:09