Module: Roda::RodaPlugins::Proxy

Defined in:
lib/roda/proxy.rb

Overview

Roda plugin for simple API proxying

Defined Under Namespace

Modules: RequestMethods

Class Method Summary collapse

Class Method Details

.configure(app, opts = {}) ⇒ Object

Respond to the configure method to set the destination when proxying Expects the following options:

to

Required. The scheme and host of the proxy. Should not end with a slash.

path_prefix

Optional. The path to append to the above for proxying.

The current request path will be prefixed on to this value.
Should begin and end with a +/+. Defaults to +/+.
For example, if the path prefix is +/foo/+ and the request received
by Roda is +GET /postcode/lookup+, The proxied request will be dispatched
to +GET /home/postcode/lookup+

Example:

plugin :proxy, to: 'https://foo.bar', path: '/my/api'


24
25
26
27
28
29
# File 'lib/roda/proxy.rb', line 24

def self.configure(app, opts = {})
  app.opts[:proxy_to] = opts.fetch(:to, nil) 
  app.opts[:proxy_path] = opts.fetch(:path_prefix, '/')
  
  raise 'Proxy host not set, use "plugin :proxy, to: http://example.com"' unless app.opts[:proxy_to]
end