跳转到主要内容

没有传输层的简单JSON-RPC服务

项目描述

JSONRPCBase

https://ci.appveyor.com/api/projects/status/mgn5i4m1wx2nu70y?svg=true https://circleci.com/gh/level12/jsonrpcbase.svg?style=shield https://codecov.io/gh/level12/jsonrpcbase/branch/master/graph/badge.svg

简介

没有传输层的简单JSON-RPC服务

这个库旨在作为一个辅助库,用于轻松实现具有Unix/TCP套接字类传输协议的JSON-RPC服务,这些协议没有复杂特殊要求。您需要利用某些合适的传输协议与这个库一起提供实际可用的JSON-RPC服务。

特性

  • 易于使用,体积小,经过良好测试。

  • 支持JSON-RPC v2.0。除v1.0类提示外,与v1.x风格调用兼容。

  • 可选的参数类型验证,可显著简化jsonrpc方法数据的开发。

示例

示例用法

import jsonrpcbase

chat_service = jsonrpcbase.JSONRPCService()

def login(username, password, timelimit=0):
    (...)
    return True

def receive_message(**kwargs):
    (...)
    return chat_message

def send_message(msg):
    (...)

if __name__ == '__main__':

    # Adds the method login to the service as a 'login'.
    chat_service.add(login, types=[basestring, basestring, int])

    # Adds the method receive_message to the service as a 'recv_msg'.
    chat_service.add(receive_message, name='recv_msg', types={"msg": basestring, "id": int})

    # Adds the method send_message as a 'send_msg' to the service.
    chat_service.add(send_message, 'send_msg')

    (...)

    # Receive a JSON-RPC call.
    jsonmsg = my_socket.recv()

    # Process the JSON-RPC call.
    result = chat_service.call(jsonmsg)

    # Send back results.
    my_socket.send(result)

问题 & 评论

请访问: http://groups.google.com/group/blazelibs

当前状态

看起来很稳定,但据我所知,尚未被广泛使用。

可以通过 开发版本 使用 easy_install JSONRPCBase==dev 进行安装。

致谢

该项目最初由以下人员开发

Juhani Åhman http://bitbucket.org/fuzzybyte/jsonrpcbase/src

变更日志

0.2.0于2016年11月30日发布

  • 添加Python 3支持(3.4和3.5)

  • 在CircleCI和AppVeyor上设置持续集成测试

  • 测试覆盖率在CodeCov上

0.1.2版本发布于2012-03-08

  • 修复了在使用实例方法且不带参数时参数验证逻辑

    (mlewellyn)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

JSONRPCBase-0.2.0.tar.gz (7.4 kB 查看哈希)

上传时间 源代码

由以下支持