A fast and performant proxy and aggregator for querying multiple instances of an API spread across globally distributed data centers.
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
Merging responses from multiple endpoints together occurs only under certain conditions outlined on the Multiple Endpoints Aggregation wiki page.
Roadmap
OData support for server-side ordering and paging
Response caching for a specified time
Release files for curryproxy 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| curryproxy-1.0.1.tar.gz | 24.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| curryproxy-1.0.1-py2-none-any.whl | Python 2 | none | any | Details |
Total release size: 94.5 kB
Release files / curryproxy-1.0.1.tar.gz
| Download URL | curryproxy-1.0.1.tar.gz |
|---|---|
| Size | 24.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c1f96c18f03e76633fcc5d199e50c99319631e06017287d4e4d992ba1f850e9f
|
|
BLAKE2b-256 checksum How to use checksums |
74a136855c58fd1f245a91c9716d9dc210ac03ceec2f8ebfed6850278d78bcf6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / curryproxy-1.0.1-py2-none-any.whl
| Download URL | curryproxy-1.0.1-py2-none-any.whl |
|---|---|
| Size | 70.1 kB |
| Tags | Python 2 |
|
SHA-256 checksum How to use checksums |
c6a676da6204abe758d93ab5fd00218958a31d400fb30a36c73c63f3cfd10aed
|
|
BLAKE2b-256 checksum How to use checksums |
e5ddf8f1dade6ff2df1c55c4da88e84995dadb2533575a28f423fc0cb03b06da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |