class GRPCWeb::Client
GRPC Client
implementation Example usage:
client = GRPCWeb::Client.new
(“localhost:3000/grpc”, HelloService::Service) client.say_hello(name: 'James')
Attributes
base_url[RW]
service_interface[RW]
Public Class Methods
new(base_url, service_interface)
click to toggle source
# File lib/grpc_web/client/client.rb, line 14 def initialize(base_url, service_interface) self.base_url = base_url self.service_interface = service_interface service_interface.rpc_descs.each do |rpc_method, rpc_desc| define_rpc_method(rpc_method, rpc_desc) end end
Private Instance Methods
define_rpc_method(rpc_method, rpc_desc)
click to toggle source
# File lib/grpc_web/client/client.rb, line 27 def define_rpc_method(rpc_method, rpc_desc) ruby_method = ::GRPC::GenericService.underscore(rpc_method.to_s).to_sym define_singleton_method(ruby_method) do |params = {}| uri = endpoint_uri(rpc_desc) ::GRPCWeb::ClientExecutor.request(uri, rpc_desc, params) end end
endpoint_uri(rpc_desc)
click to toggle source
# File lib/grpc_web/client/client.rb, line 35 def endpoint_uri(rpc_desc) URI(File.join(base_url, service_interface.service_name, rpc_desc.name.to_s)) end