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)