https://github.com/jgraichen/rack-remote
Small request intercepting rack middleware to invoke remote calls over HTTP.
https://github.com/jgraichen/rack-remote
Last synced: about 1 year ago
JSON representation
Small request intercepting rack middleware to invoke remote calls over HTTP.
- Host: GitHub
- URL: https://github.com/jgraichen/rack-remote
- Owner: jgraichen
- License: mit
- Created: 2013-10-01T16:21:23.000Z (over 12 years ago)
- Default Branch: main
- Last Pushed: 2025-04-07T12:27:31.000Z (about 1 year ago)
- Last Synced: 2025-04-07T13:30:06.638Z (about 1 year ago)
- Language: Ruby
- Size: 30.3 KB
- Stars: 1
- Watchers: 3
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Rack::Remote
*Rack::Remote* is a small request intercepting Rack middleware to invoke
remote calls over HTTP. This can be used to invoke e.g. factories on
remote services for running integration tests on distributed applications.
## Installation
Add this line to your application's Gemfile:
gem 'rack-remote'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rack-remote
## Usage
### On server/service side
Register available remote calls:
```ruby
Rack::Remote.register :factory_bot do |params, env, request|
FactoryBot.create params[:factory]
end
```
Return value can be a Rack response array or any object that will be converted to JSON.
### On client side
```ruby
Rack::Remote.add :srv1, url: 'http://serv.domain.tld/proxyed/path'
Rack::Remote.invoke :srv1, :factory_bot, factory: 'user'
Rack::Remote.invoke 'http://serv.domain.tld/proxyed/path', :factory_bot, factory: 'user'
```
## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
4. Add specs
5. Add features
6. Commit your changes (`git commit -am 'Add some feature'`)
7. Push to the branch (`git push origin my-new-feature`)
8. Create new Pull Request