// Every RPC gets its own Request and Response messagerpcGetUser(GetUserRequest) returns (GetUserResponse);
rpcListUsers(ListUsersRequest) returns (ListUsersResponse);
rpcUpdateUser(UpdateUserRequest) returns (UpdateUserResponse);
Standard Method Names (Google AIP)
Method
Request
Response
Get
GetXRequest {name}
X
List
ListXsRequest {page_size, page_token}
ListXsResponse {xs, next_page_token}
Create
CreateXRequest {parent, x}
X
Update
UpdateXRequest {x, update_mask}
X
Delete
DeleteXRequest {name}
Empty or X
FieldMask for Partial Updates
import"google/protobuf/field_mask.proto";
messageUpdateUserRequest {
User user = 1;
google.protobuf.FieldMask update_mask = 2;
// Client sets: update_mask = "name,email"// Server only updates those fields, ignores others
}