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.

Source Distribution

curryproxy-1.0.0.tar.gz (23.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page