PythonでgRPCを扱う方法です。クライアント側だけの紹介です。
Protocol Buffersの定義ファイルを用意します。
crawl.proto
syntax = 'proto3'; package proto; service Crawler { rpc Crawl(CrawlRequest) returns (CrawlResponse); } message CrawlRequest { string url = 1; } message CrawlResponse { string content = 2; }
Protocol Buffersの定義ファイルを、Pythonのソースファイルにコンパイルします。
以下のコマンドを実行します。
$ protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/crawl.proto
$SRC_DIR
: protoファイルがあるディレクトリ
$DST_DIR
: コンパイルしたソースファイルの保存先
crawl_pb2.py
とcrawl_pb2_grpc.py
のファイルが生成されます。
生成されたPythonのファイルを利用してgRPCのサーバーに対してリクエストします。
import grpc from crawl_pb2_grpc import CrawlerStub from import CrawlRequest def crawl(url): channel = grpc.insecure_channel('localhost:50005') crawl_request = CrawlRequest(url=url) # リクエストで送るデータの生成 stub = CrawlerStub(channel) result = stub.Crawl(crawl_request) # リクエスト print(result.content) # レスポンスのcontentを取得