👋

KotlinでgRPC Serverの最小構成

2021/06/06に公開

とりあえず結論

GitHubに上げましたので、コピーなりなんなりしてご利用ください。
https://github.com/yu1ro/minimum-grpc-kotlin

ディレクトリ構成

src/main/protoにprotoファイルを記載します
src/main/kotlinに実際のプロダクトコードを記載します

コード生成

以下のいずれかの方法で生成します。

  1. コマンドで生成する場合は、 ./gradlew generateProto
  2. IDEで生成する場合は、Gradle > Tasks > other > generateProto

気をつけたこと

無料で開発

これまでのServer-side KotlinはIntelliJのUltimate Editionで開発する必要があり、お金がかかりました。
無料で開発できるようにCommunity Editionでできるようにしました。

生成したファイルを補完候補に入れる

.protoから生成したファイルは、build/generated/source/proto/mainに配置されますが、
これらをIDEに教えてあげる必要があるので、以下をbuild.gradle.ktsに追加します

sourceSets {
    main {
        resources {
            srcDir("src/main/proto")
        }
        java {
            srcDir("build/generated/source/proto/main/grpc")
            srcDir("build/generated/source/proto/main/grpckt")
            srcDir("build/generated/source/proto/main/java")
        }
    }
}

参考資料

https://grpc.io/docs/languages/kotlin/
https://qiita.com/disc99/items/3fdfe5c1c1170871221a

Discussion