2015-03-05 14 views
8

Tôi đang cố gắng để sử dụng Google protobuf và tôi đang gặp sự giới thiệu tiếp theo:Phương thức dịch vụ protobuf có thể trả về kiểu nguyên thủy không?

message.proto file:

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

service.proto file:

import "message.proto"; 

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

Tôi đang cố gắng tạo nguồn C++ và gặp lỗi:

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

service.proto:4:40: Expected message type.

Tôi có phải chỉ trả lại các loại do người dùng xác định không? Nguyên thủy (như bool hoặc string) có được hỗ trợ không? Tôi có thể sử dụng các kiểu nguyên thủy làm đối số phương thức dịch vụ (thay vì Request trong ví dụ của tôi) không?

+0

Làm thế nào về 'thư Bool { bool status = 1; } ' – Andy

Trả lời

10

Không, bạn không thể sử dụng loại nguyên thủy làm yêu cầu hoặc phản hồi. Bạn phải sử dụng một loại tin nhắn.

Điều này quan trọng vì loại thông báo có thể được mở rộng sau này, trong trường hợp bạn quyết định muốn thêm thông số mới hoặc trả lại một số dữ liệu bổ sung.

Các vấn đề liên quan