2 KiB
Capture is a reverse proxy that takes an incoming HTTP request and sends it to another server, proxying the response back to the client, while showing them in a dashboard
Running
./capture -url=https://example.com/
Settings
param | description |
---|---|
-url |
Required. Set the url you want to proxy |
-port |
Set the proxy port. Default: 9000 |
-dashboard |
Set the dashboard port. Default: 9001 |
-captures |
Set how many captures to show in the dashboard. Default: 16 |
Using
If you set your base url as http://example.com/api
, now http://localhost:9000
points to that
address. Hence, calling http://localhost:9000/users/1
is like calling http://example.com/api/users/1
Capture saves all requests and responses so that you can see them in the dashboard
Dashboard
To access the dashboard go to http://localhost:9001/
Preview
Building
Manually:
git clone --depth 1 https://github.com/ofabricio/capture.git
cd capture
go build -o capture .
Via docker:
git clone --depth 1 https://github.com/ofabricio/capture.git
cd capture
docker run --rm -v "${PWD}:/src" -w /src -e GOOS=darwin golang:latest go build -o capture .
Now you have an executable binary in your directory
Note: you can change GOOS=darwin
to linux
or windows
Plugins
Put plugin files in the current directory. They are loaded sorted by filename on startup.
Plugins must export the following function:
func Handler(proxy http.HandlerFunc) http.HandlerFunc {
return func(rw http.ResponseWriter, r *http.Request) {
proxy.ServeHTTP(rw, r)
}
}