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.1.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

curryproxy-1.0.1-py2-none-any.whl (70.1 kB view details)

Uploaded Python 2

File details

Details for the file curryproxy-1.0.1.tar.gz.

File metadata

  • Download URL: curryproxy-1.0.1.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for curryproxy-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c1f96c18f03e76633fcc5d199e50c99319631e06017287d4e4d992ba1f850e9f
MD5 ee4cb753d7d7b735543a0d9af701bb9c
BLAKE2b-256 74a136855c58fd1f245a91c9716d9dc210ac03ceec2f8ebfed6850278d78bcf6

See more details on using hashes here.

File details

Details for the file curryproxy-1.0.1-py2-none-any.whl.

File metadata

File hashes

Hashes for curryproxy-1.0.1-py2-none-any.whl
Algorithm Hash digest
SHA256 c6a676da6204abe758d93ab5fd00218958a31d400fb30a36c73c63f3cfd10aed
MD5 7f8e23cb2607c30e249030ad25662c4c
BLAKE2b-256 e5ddf8f1dade6ff2df1c55c4da88e84995dadb2533575a28f423fc0cb03b06da

See more details on using hashes here.

Supported by

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