UTS DjangoJsonRpc 设计概要
简介
本文档提供了关于 Django JSON-RPC 的程序的设计和使用说明。该程序是一个基本的 JSON-RPC 实现,适用于 Django 支持的站点。它提供了简单且符合 Python 风格的 API,并支持 JSON-RPC 2.0规范。主要是解决,web 接口对平台提供时,功能代码大量重复且维护困难的问题。
设计概述
该程序的设计基于 Django 框架,并使用了 jsonrpc.views 和 jsonrpc.decorators 模块。程序通过定义命名空间,并使用 publicmethod 装饰器,使得 django 应用程序中的能够被外部访问。通过 JsonRpcView 视图,用于处理 JSON-RPC 请求。在安全方面,程序中使用了安全 api_key 校验,需要特定的客户端才能够调用接口。
安装和配置
程序已内置在 uts_api 中的 common 目录下, 程序目录名称为 jsonrpc。调用的客户端实现已内置到/opt/nsfocus/bin/common 目录下,程序目录名称为 jsonprclib。
使用方法
使用示例如下:
from api.common.jsonrpc.views import JsonRpcView
from api.common.jsonrpc.decorators import publicmethod
class TestRpcMethods(object):
namespace = "test"
@publicmethod
def hello(self, who="World"):
return "Hello, %s!" % who
@publicmethod
def echo(self, value):
return value
rpc = JsonRpcView.as_view(classes=[TestRpcMethods])
客户端调用示例如下:
from common import jsonrpclib
server = jsonrpclib.Server("http://127.0.0.1:8080/rpc")
result = server.test.hello("我在调用")
总结
该程序是基于 Django 框架的一个 JSON-RPC 实现,提供了简单且符合 Python 风格的 API,并支持 JSON-RPC 2.0规范。通过定义命名空间和使用装饰器,该程序使得 Django 应用程序中的方法可以被外部访问。安全方面,程序使用安全 api_key 校验来限制调用接口的客户端。该程序已经内置在指定目录下,并且提供了相应的客户端调用示例。