gRPC is now a first-class citizen in .NET Core 3.0. It’s faster than REST for internal service communication. Here’s how to get started.
Define the Service
syntax = "proto3";
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}Implement the Service
public class GreeterService : Greeter.GreeterBase
{
public override Task<HelloReply> SayHello(
HelloRequest request, ServerCallContext context)
{
return Task.FromResult(new HelloReply
{
Message = $"Hello, {request.Name}!"
});
}
}Client
var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(new HelloRequest { Name = "World" });When to Use gRPC
- Service-to-service communication
- Streaming scenarios
- Performance-critical paths
References
Discover more from C4: Container, Code, Cloud & Context
Subscribe to get the latest posts sent to your email.