Class: A2A::Server::Middleware::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/a2a/server/middleware.rb

Overview

Middleware builder for creating middleware stacks

Instance Method Summary collapse

Constructor Details

#initializeBuilder

Returns a new instance of Builder.



111
112
113
# File 'lib/a2a/server/middleware.rb', line 111

def initialize
  @registry = Registry.new
end

Instance Method Details

#buildRegistry

Build the middleware registry

Returns:

  • The built middleware registry



165
166
167
# File 'lib/a2a/server/middleware.rb', line 165

def build
  @registry
end

#call(request, context) { ... } ⇒ Object

Execute the middleware stack

Parameters:

  • The request

  • The request context

Yields:

  • Block to execute after all middleware

Returns:

  • Result from the block



176
177
178
# File 'lib/a2a/server/middleware.rb', line 176

def call(request, context, &block)
  @registry.call(request, context, &block)
end

#use(middleware, **options) ⇒ Object

Add custom middleware

Parameters:

  • Middleware instance

  • Middleware options



156
157
158
159
# File 'lib/a2a/server/middleware.rb', line 156

def use(middleware, **options)
  @registry.add(middleware, **options)
  self
end

#use_authentication(**options) ⇒ Object

Add authentication middleware

Parameters:

  • Authentication options



119
120
121
122
# File 'lib/a2a/server/middleware.rb', line 119

def use_authentication(**options)
  @registry.add(AuthenticationMiddleware.new(**options))
  self
end

#use_cors(**options) ⇒ Object

Add CORS middleware

Parameters:

  • CORS options



146
147
148
149
# File 'lib/a2a/server/middleware.rb', line 146

def use_cors(**options)
  @registry.add(CorsMiddleware.new(**options))
  self
end

#use_logging(**options) ⇒ Object

Add logging middleware

Parameters:

  • Logging options



137
138
139
140
# File 'lib/a2a/server/middleware.rb', line 137

def use_logging(**options)
  @registry.add(LoggingMiddleware.new(**options))
  self
end

#use_rate_limiting(**options) ⇒ Object

Add rate limiting middleware

Parameters:

  • Rate limiting options



128
129
130
131
# File 'lib/a2a/server/middleware.rb', line 128

def use_rate_limiting(**options)
  @registry.add(RateLimitMiddleware.new(**options))
  self
end