跳转至

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 校验来限制调用接口的客户端。该程序已经内置在指定目录下,并且提供了相应的客户端调用示例。