Python

Is Python your language of choice?

The gRPC technology allows us to easily connect programs written in different programming languages.

In this example, we will create a Python client to call our gRPC COBOL service (hello.cbl).

To do this, we first need to compile the proto-message for the Python language.


syntax = "proto3";

option go_package = "github.com/driver8soft/examples/d8grpc/hello";

package hello;

// d8grpc hello service definition.
service D8grpc {
  // Sends a greeting
  rpc Hello (MsgReq) returns (MsgRes) {}
}

// The request message containing the user's name.
message MsgReq {
  string hello_name = 1;
}

// The response message containing the greetings
message MsgRes {
  string response = 1;
}

Install the compiler for the Python language and run the following command

python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. hello.proto

Compiling the proto file will create the necessary stubs for our Python client.

  • hello_pb2.py
  • hello_pb2_grpc.py

Next, create a client.py file and copy the following code.

import grpc
import hello_pb2
import hello_pb2_grpc

def run(inputname):
    with grpc.insecure_channel('localhost:50051') as channel:
        stub = hello_pb2_grpc.D8grpcStub(channel)
        r = stub.Hello(hello_pb2.MsgReq(hello_name=inputname))
    print(f"Result: {r.response}")

if __name__ == '__main__':
    # Get user Input 
    inputname = input("Please enter name: ")
    run(inputname)

To test the new Python client, open a terminal and run

python client.py

Easy come, easy Go, easy Python, …