github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/greeter/srv/python/sidecar_server.py (about) 1 from werkzeug.wrappers import Request, Response 2 from werkzeug.serving import run_simple 3 from jsonrpc import JSONRPCResponseManager, dispatcher 4 5 import uuid 6 import requests 7 import json 8 9 def register(): 10 register_uri = "http://localhost:8081/registry" 11 service = "go.micro.srv.greeter" 12 headers = {'content-type': 'application/json'} 13 payload = { 14 "name": service, 15 "nodes": [{ 16 "id": service + "-" + str(uuid.uuid4()), 17 "address": "127.0.0.1", 18 "port": 4000, 19 }], 20 } 21 requests.post(register_uri, data=json.dumps(payload), headers=headers) 22 23 @Request.application 24 def application(request): 25 # Dispatcher is dictionary {<method_name>: callable} 26 dispatcher["Say.Hello"] = lambda s: "hello " + s["name"] 27 28 response = JSONRPCResponseManager.handle( 29 request.data, dispatcher) 30 return Response(response.json, mimetype='application/json') 31 32 33 if __name__ == '__main__': 34 register() 35 run_simple('localhost', 4000, application)