django-requests-api 
Demo
- Heroku demo (if still online)
- Example branch on DLRSP/example
Requirements
- Python 3.9+
- Django 4.2+ (see package classifiers for the full matrix)
Install
pip install django-requests-api
INSTALLED_APPS = (
# ...
"requests_api",
# ...
)
Usage
from requests_api import RequestsApi
client = RequestsApi("https://api.publicapis.org")
r = client.get("/entries")
print(r.json())
github = RequestsApi(
"https://api.github.com",
headers={"Authorization": "token abcdef"},
)
r = github.get("/user", headers={"Accept": "application/json"})
print(r.text)
Paths are joined to base_url with a single slash. Absolute URLs (http:// / https://) are passed through unchanged. The package depends on requests (install_requires).
Helpers
Implementation: requests_api.requests_api and requests_api.helpers; public imports from the package root:
from requests_api import (
copy_get_params_with_overrides,
normalize_api_language,
requests_api_for_base,
)
lang = normalize_api_language(
request.LANGUAGE_CODE,
allowed=("it", "en"),
fallback="en",
)
params = copy_get_params_with_overrides(request, lang=lang)
client = requests_api_for_base("https://www.example.com")
r = client.get("api/resource", params=params, timeout=30)
Configuration (APP_CONFIG / REQUESTS_API_*)
Read via requests_api.conf: Django settings first, then APP_CONFIG["requests_api"], then defaults.
APP_CONFIG["requests_api"] |
Django setting | Notes |
|---|---|---|
CACHED_CLIENTS_MAXSIZE |
REQUESTS_API_CACHED_CLIENTS_MAXSIZE |
Cap for requests_api_for_base (default 8). 0 or below turns caching off. |
DEFAULT_REQUEST_TIMEOUT |
REQUESTS_API_DEFAULT_REQUEST_TIMEOUT |
Optional seconds; default None. Not applied automatically—call get_requests_api_default_request_timeout() and pass timeout= yourself if you want a shared value. |
from requests_api import get_requests_api_default_request_timeout
timeout = get_requests_api_default_request_timeout()
client = requests_api_for_base("https://api.example.com")
r = client.get("v1/x", timeout=timeout if timeout is not None else 30)
In tests, call clear_requests_api_client_cache() when you change cache settings. Full write-up: docs/tutorial/configuration.md (MkDocs: Tutorials → Configuration).
Run the example locally
git clone --depth=50 --branch=django-requests-api https://github.com/DLRSP/example.git example-requests-api
cd example-requests-api
python manage.py runserver
Then open http://127.0.0.1:8000 (install dependencies from that repo’s requirements/ first).
Docs
MkDocs sources live under docs/. See Contributing for mkdocs serve.
Used in
Public GitHub projects that reference django-requests-api / requests_api (weekly sync via .github/used-in.yaml and update-used-in):
django-iubenda — Django application for privacy and cookies policy managed by Iubenda.
Missing a project? Open a PR or run the workflow manually in your fork.
License
MIT — see LICENSE.
Release files for django-requests-api 0.6.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_requests_api-0.6.12.tar.gz | 26.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_requests_api-0.6.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 100.4 kB
Release files / django_requests_api-0.6.12.tar.gz
| Download URL | django_requests_api-0.6.12.tar.gz |
|---|---|
| Size | 26.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a0a117bcacb6a7eb42d46d097be5268c9058fd40e13dec973bcfc0caea707be3
|
|
BLAKE2b-256 checksum How to use checksums |
f1636d26fc85dca5029df3d790d408c1cb116131da6766e14a66f6e20d8150e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / django_requests_api-0.6.12-py3-none-any.whl
| Download URL | django_requests_api-0.6.12-py3-none-any.whl |
|---|---|
| Size | 73.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c2eb8af8be826466a96abc53e1b959d0db85d54e5290ac22dcf892743ff3ea7a
|
|
BLAKE2b-256 checksum How to use checksums |
9bf7a4d9e3f198e9ce6767fc445d0baea8443a192b562a1165c33fe2a3552e3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|