簡體   English   中英

如何使用 GRPC 將 object 作為服務響應 object 傳遞?

[英]How can I pass an object as a service response object using GRPC?

我正在開發一個 Java GRPC 服務,它接受 JSON 輸入並返回一個 JSON 結構作為響應 object。我可以返回一個 class object 而不是在響應中將其轉換為 80818588 嗎?

我可以用 Java 解析客戶端收到的返回的 object 嗎? 如果是這樣,如何?

如果服務返回多個不同的響應對象(類),那么我應該如何配置proto來處理這些對象。 例如汽車、自行車等?

gRPC 默認使用 Protobufs 來定義服務和消息。 這種默認機制的一個優點是您可以使用 Protobufs 定義服務和消息,並且protoc將為兩者生成特定於客戶端和服務器語言的綁定。

任何消息格式(例如 JSON)都可以與 gRPC 一起使用,但它不太常見並且對開發人員來說更費力

您的 gRPC 客戶端的存根是否接受並返回 JSON?

或者您是否使用規范的JSON 編碼來促進 JSON 消息的輸入/輸出?

如果您不熟悉它,請參閱 Java gRPC介紹

我問,因為使用這個默認流程,可以在客戶端和服務器上為您提供特定於語言的類型(類|結構等)。

Protobufs 不支持泛型類型。 當您有已知的類型列表時,您可以將Oneof用於例如 Dog 或 Cat。 當類型列表未知或無限且類似於java.lang.Object時,您可以使用Any封裝消息(信封)

最后一點,盡管protoc在配置時會生成 Java 個類,但建議將此類生成的類包裝|映射到您自己的應用程序類型中。 這部分是為了不要太緊密地綁定到它們,但也因為有一些您可能不希望浮出水面的特定於 protobuf 的功能。

因此,您可能會映射到|來自各種 object 類型,無論您使用哪種底層消息格式,盡管 protobufs 在線二進制格式可能比 JSON 更有效,並且編組到|來自 protobufs 可能比 JSON 編組更有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM