ダーク/ライト切り替え

【gRPC】VSCODEとDotNetでgRPC環境を構築してみる

投稿日 2023-02-05T15:59:13.901840+09:00

【gRPC】VSCODEとDotNetでgRPC環境を構築してみる

目次

目次を読み込み中...

Visual StudioではなくVSCODE上でgRPC環境の構築を簡潔させます。今回は初歩的な開通テストなのでHTTPS化はしません。前提条件としてDotNetCLIが使える状態であること。

サーバー側の構築

テンプレの作成

まずターミナル上でdotnet new grpc -o [プロジェクト名]と打ち込んで実行する。
プロジェクト名のディレクトリが出来るのでそこをワークスペースとしてVSCODEを開く。
すると初めからサーバーは既にほぼ動く状態に出来上がっている。

Server

Protosにある.protoファイルはクライアント側でも使います。

launchSettings.jsonの修正

今回はHTTPのみのテストなのでHTTPSの部分をコメントアウトするか削除する。しないとエラーで起動しない。

launchSetting

クライアント側の構築

別の場所にdotnet new console -o [プロジェクト名]として、新しくワークスペースを作る。

protosの作成

プロジェクトのトップディレクトリにprotosディレクトリを作成し、先ほどのサーバー側で作られたgreet.protoをコピーする

namespaceはクライアント側のものと同じClientとする。

.protoファイルのコピーが終わったら、プロジェクトファイル(.csproj)に下記の追記をする。

csproj追記

必要なパッケージをインストールする

必要なパッケージは3つ

  • Grpc.Net.Client
  • Google.Protobuf
  • Grpc.Tools

パッケージのインストールにはNuget Package Managerが便利です。

Nuget

C#コードの作成

次にC#コードの記述ですが、一旦これだけ書いたところでビルドする。

まず一度、dotnet buildでビルドしたところで残りのコードを記述する。この、「先に一度ビルドをする」ことでprotobufに対するC#コードが自動生成される。

これをせずに一気に全てのコードを書いてしまうと、Greeterクラスが存在せずエラーになってしまう。

ビルドが成功したら残りのコードも書きましょう。

このサンプルでは、gRPCクライアントを作成するために、GreeterClientクラスを使用しています。このクラスは、gRPCサーバーとの通信に必要な通信チャネルを管理します。

gRPCクライアントが作成されたら、SayHelloAsyncメソッドを使用して、gRPCサーバーにリクエストを送信することができます。このメソッドは、非同期で実行されるため、gRPCサーバーからのレスポンスを待つことができます。

実行結果

まずサーバー側を起動して待ち受け状態にする。
次にクライアント側を実行する。結果は下記のとおり。

result

以上で、dotnetを用いたc# gRPCの開通テストは終わりです。


準備中

このサイトをシェアする

【gRPC】VSCODEとDotNetでgRPC環境を構築してみる