28

Google protobuf を使用しようとしていますが、次の説明があります。

message.protoファイル:

message Request {
   required int32 id = 1;
   optional string value = 2;
}

service.protoファイル:

import "message.proto";

service Service {
    rpc request (Request) returns (bool);
}

C++ ソースを生成しようとすると、エラーが発生します。

$ protoc service.proto --cpp_out=/tmp/proto/build

service.proto:4:40: 予期されるメッセージ タイプです。

ユーザー定義型のみを返す必要がありますか? プリミティブ (boolや などstring) はサポートされていますか? Request(私の例ではなく) プリミティブ型をサービス メソッドの引数として使用できますか?

4

3 に答える 3

40

いいえ、プリミティブ型をリクエストまたはレスポンスとして使用することはできません。メッセージ タイプを使用する必要があります。

新しいパラメーターを追加したり、追加のデータを返したりする場合に備えて、メッセージの種類を後で拡張できるため、これは重要です。

于 2015-03-07T20:57:35.943 に答える