Initial commit
This commit is contained in:
38
skills/skill-adapter/assets/examples/streaming_rpc.proto
Normal file
38
skills/skill-adapter/assets/examples/streaming_rpc.proto
Normal file
@@ -0,0 +1,38 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package example;
|
||||
|
||||
option go_package = "example.com/grpc-service-generator/examples";
|
||||
|
||||
// Define the service
|
||||
service StreamingService {
|
||||
// Server-side streaming RPC. The client sends a single request, and the
|
||||
// server responds with a stream of messages.
|
||||
rpc ServerStreamingExample (StreamingRequest) returns (stream StreamingResponse) {}
|
||||
}
|
||||
|
||||
// The request message for the ServerStreamingExample RPC.
|
||||
message StreamingRequest {
|
||||
string request_id = 1; // A unique identifier for the request.
|
||||
int32 num_responses = 2; // The number of responses the server should send.
|
||||
string message_prefix = 3; // A prefix to add to each response message.
|
||||
}
|
||||
|
||||
// The response message for the ServerStreamingExample RPC.
|
||||
message StreamingResponse {
|
||||
string response_id = 1; // A unique identifier for the response.
|
||||
string message = 2; // The message content.
|
||||
}
|
||||
|
||||
// Example usage notes:
|
||||
//
|
||||
// - The `request_id` field in `StreamingRequest` can be used for logging and
|
||||
// correlation.
|
||||
// - The `num_responses` field allows the client to control the number of
|
||||
// messages received. Consider adding a maximum limit to prevent resource exhaustion.
|
||||
// - The `message_prefix` field demonstrates how to parameterize the server's
|
||||
// response. This could be used to customize the response based on user preferences.
|
||||
// - The `response_id` field in `StreamingResponse` allows for identifying individual messages in the stream.
|
||||
// - Consider adding error handling to the server implementation to gracefully
|
||||
// handle situations where the client disconnects prematurely.
|
||||
// - For production, consider adding authentication and authorization to the service.
|
||||
Reference in New Issue
Block a user