github.com/grpc-ecosystem/grpc-gateway/v2@v2.19.1/examples/internal/server/echo.go (about) 1 package server 2 3 import ( 4 "context" 5 6 examples "github.com/grpc-ecosystem/grpc-gateway/v2/examples/internal/proto/examplepb" 7 "google.golang.org/grpc" 8 "google.golang.org/grpc/codes" 9 "google.golang.org/grpc/grpclog" 10 "google.golang.org/grpc/metadata" 11 "google.golang.org/grpc/status" 12 ) 13 14 // Implements of EchoServiceServer 15 16 type echoServer struct{} 17 18 func newEchoServer() examples.EchoServiceServer { 19 return new(echoServer) 20 } 21 22 func (s *echoServer) Echo(ctx context.Context, msg *examples.SimpleMessage) (*examples.SimpleMessage, error) { 23 grpclog.Info(msg) 24 return msg, nil 25 } 26 27 func (s *echoServer) EchoBody(ctx context.Context, msg *examples.SimpleMessage) (*examples.SimpleMessage, error) { 28 grpclog.Info(msg) 29 grpc.SendHeader(ctx, metadata.New(map[string]string{ 30 "foo": "foo1", 31 "bar": "bar1", 32 })) 33 grpc.SetTrailer(ctx, metadata.New(map[string]string{ 34 "foo": "foo2", 35 "bar": "bar2", 36 })) 37 return msg, nil 38 } 39 40 func (s *echoServer) EchoDelete(ctx context.Context, msg *examples.SimpleMessage) (*examples.SimpleMessage, error) { 41 grpclog.Info(msg) 42 return msg, nil 43 } 44 45 func (s *echoServer) EchoPatch(ctx context.Context, msg *examples.DynamicMessageUpdate) (*examples.DynamicMessageUpdate, error) { 46 grpclog.Info(msg) 47 return msg, nil 48 } 49 50 func (s *echoServer) EchoUnauthorized(ctx context.Context, msg *examples.SimpleMessage) (*examples.SimpleMessage, error) { 51 grpclog.Info(msg) 52 return nil, status.Error(codes.Unauthenticated, "unauthorized err") 53 }