Flask-JSOONRPC

概述

JSON-RPC是一个无状态的、轻量级的远程过程调用(RPC)协议。所谓的RPC,Remote Procedure Call的简写,中文译作远程过程调用或者远程服务调用,只能采用post请求。
直观的理解就是,通过网络来请求服务,获取接口数据,而不用知晓底层网络协议的细节。
RPC`支持的格式很多,比如XML格式,JSON格式等等。最常用的肯定是json-rpc。
JSON-RPC协议中的客户端一般是为了向远程服务器请求执行某个方法/函数。客户端向实现了JSON-RPC协议的服务端发送请求,多个输入参数能够通过数组或者对象传递到远程方法,这个远程方法也能返回多个输出数据,具体是什么,当然要看具体的方法实现。
所有的传输都是单个对象,用JSON格式进行序列化。
请求要求包含三个特定属性:

  jsonrpc: 用来声明JSON-RPC协议的版本,现在基本固定为“2.0”
  method,方法,是等待调用的远程方法名,字符串类型
  params,参数,对象类型或者是数组,向远程方法传递的多个参数值
  id,任意类型值,用于和最后的响应进行匹配,也就是这里设定多少,后面响应里这个值也设定为相同的响应的接收者必须能够给出所有请求以正确的响应。这个值一般不能为Null,且为数字时不能有小数
响应也有三个属性(result和error二者存其一):

  jsonrpc: 用来声明JSON-RPC协议的版本,现在基本固定为“2.0”
  result,结果,是方法的返回值,调用方法出现错误时,必须不包含该成员。
  error,错误,当出现错误时,返回一个特定的错误编码,如果没有错误产生,必须不包含该成员。
  id,就是请求带的那个id值,必须与请求对象中的id成员的值相同。请求对象中的id时发生错误(如:转换错误或无效的请求),它必须为Null

安装和使用

安装:pip install Flask-JSONRPC

from flask import Flask
from flask_jsonrpc import JSONRPC

app = Flask(__name__)
# 实例化对象,注册到app中
jsonrpc = JSONRPC(app, '/api')


# 实现rpc接口
@jsonrpc.method('Common.index')
def index():
    return u'Welcome to Flask JSON-RPC'

if __name__ == '__main__':
    manager.run()

 

通过http://服务器地址端口/api/browse/来访问数据或者采用postman来测试发送数据

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-11-13 21:21  mark平  阅读(707)  评论(0编辑  收藏  举报