Class: Spikard::Grpc::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/spikard/grpc.rb

Overview

gRPC response object

Used to return gRPC responses from handlers. The payload should be a binary string containing a serialized protobuf message.

Examples:

Creating a response

user = Example::User.new(id: 1, name: 'Alice')
response = Spikard::Grpc::Response.new(payload: Example::User.encode(user))

Adding metadata

response = Spikard::Grpc::Response.new(payload: encoded_message)
response. = { 'x-custom-header' => 'value' }

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#metadata=(value) ⇒ Hash<String, String> (writeonly)

Returns gRPC metadata to include in response.

Returns:

  • (Hash<String, String>)

    gRPC metadata to include in response



# File 'lib/spikard/grpc.rb', line 65

Class Method Details

.error(message, metadata = {}) ⇒ Response

Create an error response

Examples:

response = Spikard::Grpc::Response.error('Method not implemented')

Parameters:

  • message (String)

    Error message

  • metadata (Hash<String, String>) (defaults to: {})

    Optional gRPC metadata

Returns:

  • (Response)

    A response with error status



84
85
86
87
88
89
90
91
92
# File 'lib/spikard/grpc.rb', line 84

def self.error(message,  = {})
   = .merge(
    'grpc-status' => 'INTERNAL',
    'grpc-message' => message
  )
  response = new(payload: '')
  response. = 
  response
end