1. json 文档
2. json-rpc 协议文档
3. 客户端代码 操作对象
json-rpc 2.0
import jsonrpclib
data1 = {
"name": "John",
"age": 30,
"city": "New York"
}
data2 = {
"name": "Laura",
"age": 30,
"city": "Washington.DC"
}
server = jsonrpclib.ServerProxy("http://localhost:8000")
print("[+]run calc")
print("[-]2+3")
print(server.add(2,3))
print("[-]2^3")
print(server.pow(2, 3))
print("[-]4/2")
print(server.div(4, 2))
print("[+]run object")
print("[-]add user1")
print(server.add_user(1, data1))
print("[-]show all users")
print(server.show_user())
print("[-]add user2")
print(server.add_user(2, data2))
print("[-]show all users")
print(server.show_user())
print("[-]get user1")
user=(server.get_user(1))
print(user)
print("[-]update user1 age to 100")
user["age"]=100
print(server.update_user(1, user))
print("[-]show all users")
print(server.show_user())
print("[-]del user1")
print(server.del_user(1))
print("[-]show all users")
print(server.show_user())
print("[+]run failed request")
print(server.bad(4, 2))
4. 服务端代码 调用实现
json-rpc 2.0
import json
from jsonrpclib.SimpleJSONRPCServer import SimpleJSONRPCServer
d=dict()
json_rpc_server = SimpleJSONRPCServer(("localhost", 8000))
json_rpc_server.register_function(pow)
def add(x, y):
return x + y
json_rpc_server.register_function(add, 'add')
def add_user(key, value):
d[key]=value
return key
json_rpc_server.register_function(add_user, 'add_user')
def get_user(key):
return d[key]
json_rpc_server.register_function(get_user, 'get_user')
def update_user(key, value):
d[key]=value
return key
json_rpc_server.register_function(update_user, 'update_user')
def del_user(key):
d.pop(key)
return key
json_rpc_server.register_function(del_user, 'del_user')
def show_user():
return d
json_rpc_server.register_function(show_user, 'show_user')
class Fun:
def div(self, x, y):
return x // y
fun = Fun()
json_rpc_server.register_instance(fun)
json_rpc_server.serve_forever()