/micro-client

go-micro grpc resolver/client in python

Primary LanguagePythonMIT LicenseMIT

mico-client

Python 3 resolver for go-micro grpc services.

Build Status

Examples

Compiling

Make sure you have the needed protobuf and plugins.

Notes:

  • You will need to set or replace the variables!
  • Make sure you have the python package grpcio-tools installed!
    PATH=$PATH:$GOBIN_PATH protoc -I=$SOURCE_OF_MICRO_PROJECT --proto_path=$GOPATH/src:. --python_out=plugins=micro,grpc:. $PATH_TO_PROTO_FILE
    python -m grpc_tools.protoc -I=$SOURCE_OF_MICRO_PROJECT --python_out=. --grpc_python_out=. $PATH_TO_PROTO_FILE

Etcd

    from micro_client.registry.etcdregistry import etcd, Registry
    from micro_client.common import Services

    s = Services(Registry(etcd.Client(port=2379), '/micro-registry'))

Consul

    import requests

    from micro_client.registry.consulregistry import Registry
    from micro_client.common import Services

    s = Services('http://127.0.0.1:8500/v1', session=requests.Session()))

Use it!

    service = s.resolve('some')
    print(service.connection_info)

    # Import the stub and grpc structures for use
    import grpc
    from some_pb2_grpc import SomeStub
    from some_pb2 import Input, Structures
    
    # Get the stub
    stub = services.insecure('some', SomeStub)
    # Call it
    result = stub.SomeCall(Input(Data=1), Structures(Some="data", ID=1))