...

Source file src/github.com/grpc-ecosystem/grpc-gateway/examples/internal/server/responsebody.go

Documentation: github.com/grpc-ecosystem/grpc-gateway/examples/internal/server

     1  package server
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  
     7  	examples "github.com/grpc-ecosystem/grpc-gateway/examples/internal/proto/examplepb"
     8  )
     9  
    10  // Implements of ResponseBodyServiceServer
    11  
    12  type responseBodyServer struct{}
    13  
    14  func newResponseBodyServer() examples.ResponseBodyServiceServer {
    15  	return new(responseBodyServer)
    16  }
    17  
    18  func (s *responseBodyServer) GetResponseBody(ctx context.Context, req *examples.ResponseBodyIn) (*examples.ResponseBodyOut, error) {
    19  	return &examples.ResponseBodyOut{
    20  		Response: &examples.ResponseBodyOut_Response{
    21  			Data: req.Data,
    22  		},
    23  	}, nil
    24  }
    25  
    26  func (s *responseBodyServer) ListResponseBodies(ctx context.Context, req *examples.ResponseBodyIn) (*examples.RepeatedResponseBodyOut, error) {
    27  	return &examples.RepeatedResponseBodyOut{
    28  		Response: []*examples.RepeatedResponseBodyOut_Response{
    29  			&examples.RepeatedResponseBodyOut_Response{
    30  				Data: req.Data,
    31  			},
    32  		},
    33  	}, nil
    34  }
    35  
    36  func (s *responseBodyServer) ListResponseStrings(ctx context.Context, req *examples.ResponseBodyIn) (*examples.RepeatedResponseStrings, error) {
    37  	if req.Data == "empty" {
    38  		return &examples.RepeatedResponseStrings{
    39  			Values: []string{},
    40  		}, nil
    41  	}
    42  	return &examples.RepeatedResponseStrings{
    43  		Values: []string{"hello", req.Data},
    44  	}, nil
    45  }
    46  
    47  func (s *responseBodyServer) GetResponseBodyStream(req *examples.ResponseBodyIn, stream examples.ResponseBodyService_GetResponseBodyStreamServer) error {
    48  	if err := stream.Send(&examples.ResponseBodyOut{
    49  		Response: &examples.ResponseBodyOut_Response{
    50  			Data: fmt.Sprintf("first %s", req.Data),
    51  		},
    52  	}); err != nil {
    53  		return err
    54  	}
    55  
    56  	return stream.Send(&examples.ResponseBodyOut{
    57  		Response: &examples.ResponseBodyOut_Response{
    58  			Data: fmt.Sprintf("second %s", req.Data),
    59  		},
    60  	})
    61  }
    62  

View as plain text