Repose provides solutions to API processing tasks such as
authentication, rate limiting, API validation, HTTP Request logging, and much more. It is an open-source RESTful middleware platform that is highly scalable and extensible.

What is Repose?

Repose enables downstream services to trust incoming requests as validated and well formed.

It takes incoming requests and adjusts them to be ready for consumption by passing requests through a series of extensible filters.

A Series of Filters

Incoming Requests

Users submit requests to your API, which are then load balanced, and forwarded to Repose.

Hello, who is it?

Repose can use an identity endpoint to authenticate an HTTP request before the request is passed to the destination.

Authentication »

Access Denied

Repose validates that a client request is allowed to a destination URI. If the request is not allowed, the request will be denied with an HTTP 403 - Unauthorized response.

Authorization »

One at at time, please

Distributed Rate limiting allows control over the amount of traffic to the destination service over the cluster.

Distributed Rate Limiting »

Let me get my journal

Repose can log all of your requests before they get to your service, so you can better know who's accessing your APIs

HTTP Logging »

Destination

Your service receives only validated, well formed requests.

Get started with Repose

Repose supports multiple environments to suit your deployment. Deploy repose as a docker container, inside your existing Java application or as a stand alone JAR.

See our Repose 101 Course for a quick start.

Get Involved! Join our Discourse Forum.

Test your service with Deproxy + Mimic

Any good enterprise product is backed by testing, but why just test your code when you can test the entire infrastructure?

Mimic is an API Mock Service that allows you to easily create pre-defined API responses.

Deproxy is a tool for performing high-level, black-box, functional and regression testing of proxies, and other HTTP intermediaries. It is meant to be incorporated into unit tests for functional testing.