Skip to main content

A proxy and aggregator for querying multiple instances of an API spread across globally distributed data centers.

Project description

A fast and performant proxy and aggregator for querying multiple instances of an API spread across globally distributed data centers.

https://travis-ci.org/rackerlabs/curryproxy.png

Capabilities

  • CurryProxy can handle multiple routes for use against different revisions of an API or for use against completely unrelated APIs. See etc/routes.sample.json for an example configuration.
  • Simple request forwarding (useful for preserving backwards compatability with pre-CurryProxy versions of an API hosted in a single datacenter)
    • Example: GET https://api.example.com/v1.0/foo/bar forwarded to GET https://1.api.example.com/v1.0/foo/bar
  • Advanced request forwarding to multiple endpoints
    • Example: GET https://api.example.com/1,2/v1.0/foo/bar forwarded to the following:
      • GET https://1.api.example.com/v1.0/foo/bar
      • GET https://2.api.example.com/v1.0/foo/bar
    • Requests are made in parallel
    • JSON responses received from multiple endpoints are aggregated and returned to the client
      • Example: {"foo": 1} received from 1 and {"bar": 2} received from 2 are aggregated to [{"foo": 1}, {"bar": 2}] and returned to the client
    • Rich, meaningful errors logged and returned to the client when a proxied request fails

Installation

  • pip install curryproxy
  • Setup the configuration files and start it up!

Limitations

Roadmap

  • OData support for server-side ordering and paging
  • Response caching for a specified time

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
curryproxy-1.1.2-py2-none-any.whl (72.8 kB) Copy SHA256 hash SHA256 Wheel py2
curryproxy-1.1.2.tar.gz (25.6 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page