You can find a great example from James Newton-King.
Newtonsoft.Json
creator made a project that works great with gRPC and ASP.NET.
Check here:
https://github.com/aspnet/AspLabs/tree/master/src/GrpcHttpApi
And an example from the readme:
Usage:
Add a package reference to Microsoft.AspNetCore.Grpc.HttpApi.
Register services in Startup.cs with AddGrpcHttpApi()
.
Add google/api/http.proto and google/api/annotations.proto files to your project.
Annotate gRPC methods in your .proto files with HTTP bindings and routes:
syntax = "proto3";
import "google/api/annotations.proto";
package greet;
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {
option (google.api.http) = {
get: "/v1/greeter/{name}"
};
}
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
The SayHello gRPC method can now be invoked as gRPC+Protobuf and as an HTTP API: