Class: Async::GRPC::Dispatcher

Inherits:
Protocol::GRPC::Middleware
  • Object
show all
Defined in:
lib/async/grpc/dispatcher.rb

Overview

Dispatches gRPC requests to registered services. Handles routing based on service name from the request path.

Examples:

Registering services:

dispatcher = Dispatcher.new
dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter"))
dispatcher.register(WorldService.new(WorldInterface, "world.Greeter"))

server = Async::HTTP::Server.for(endpoint, dispatcher)

Instance Method Summary collapse

Constructor Details

#initialize(app = nil, services: {}) ⇒ Dispatcher

Initialize the dispatcher.



33
34
35
36
# File 'lib/async/grpc/dispatcher.rb', line 33

def initialize(app = nil, services: {})
	super(app)
	@services = services
end

Instance Method Details

#register(service, name: service.service_name) ⇒ Object

Register a service.



41
42
43
# File 'lib/async/grpc/dispatcher.rb', line 41

def register(service, name: service.service_name)
	@services[name] = service
end