grpc proto文件生成java、.net實體類以及客戶端代碼


背景

工作中對接對方服務是GRPC,對方只提供了proto契約文件,需要自己生成對應的實體類以及客戶端代碼,故記錄下操作流程。

Java 代碼生成

實體類:

通過protoc插件生成實體類
https://github.com/protocolbuffers/protobuf/releases 下載對應版本的protoc工具解壓,我這邊用的是3.1.0版本的
proto文件拷貝至protoc同目錄,執行如下命令:
protoc --java_out=./java/ hello.proto
對應生成的文件:

maven pom引用:

    <dependencies>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-protobuf</artifactId>
            <version>1.17.1</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-stub</artifactId>
            <version>1.17.1</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-auth</artifactId>
            <version>1.17.1</version>
        </dependency>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>3.1.0</version>
        </dependency>
    </dependencies>

客戶端:
通過protocprotoc-gen-grpc-java 兩個插件生成客戶端代碼
protoc插件用上面下載好的,protoc-gen-grpc-java 下載地址:https://mvnrepository.com/artifact/io.grpc/protoc-gen-grpc-java
選擇對應版本后(我這邊是1.17.1),點file下載windows下的插件 protoc-gen-grpc-java-1.17.1-windows-x86_64.exe
然后cmd輸入命令:
protoc --plugin=protoc-gen-grpc-java=D:\protoc-gen-grpc-java-1.17.1-windows-x86_64.exe --grpc-java_out=./java/ hello.proto
沒有報錯則會生成HelloGrpc.java,即為客戶端代碼


C# 代碼生成

實體類
由於C#只用到了實體類向java服務轉發,顧沒有生成客戶端代碼的部分,同樣適用protoc插件生成,注意protoc插件版本需要和Google.Protobuf.dll版本保持一致,否則編譯可能會失敗,我這邊對應的版本是3.2.0,對應下載3.2.0的插件后執行命令:
protoc --csharp_out=./csharp/ hello.proto
生成 Hello.cs即可使用了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM