Learning how to handle errors sent out by a gRPC server in a REST Gateway and sending meaningful error responses to clients
The REST API Gateway is running on localhost:8082
and the gRPC server is running on localhost:8081
.
- Start the gRPC server
make start_grpc
- Start the Gateway
make start_gateway
service CalculatorService {
rpc DivideNumbers(DivideNumbersRequest) returns (DivideNumbersResponse);
}
// Divide number_one by number_two
message DivideNumbersRequest {
float number_one = 1;
float number_two = 2;
}
message DivideNumbersResponse {
int32 code = 1;
float answer = 2;
}
Endpoint: /calculator/divide
Method: POST
Request Body:
{
"number_one": 10,
"number_two": 0
}
Success Response:
{
"code": 200,
"answer": 0.01
}
Error Response:
// Errors out when number_two is 0 (Division by zero)
{
"error": true,
"message": "division by zero not possible"
}