Skip to main content

django-requests-api PyPi license

PyPi status PyPi version PyPi python version codecov.io pre-commit.ci status CI

Demo

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):

  • GitHub stars 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.

Download files

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

Source Distribution

django_requests_api-0.6.8.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_requests_api-0.6.8-py3-none-any.whl (73.8 kB view details)

Uploaded Python 3

File details

Details for the file django_requests_api-0.6.8.tar.gz.

File metadata

  • Download URL: django_requests_api-0.6.8.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for django_requests_api-0.6.8.tar.gz
Algorithm Hash digest
SHA256 4548ec2f6235f236c21b96bdb0d6558c1eaf9df74469641dce862f7e46c98889
MD5 4afc0d2a62049dab422586a353331f13
BLAKE2b-256 ab01174faa867761ba908256f7dab82fb8b4d99db872d1aabfed8d183d58bfa7

See more details on using hashes here.

File details

Details for the file django_requests_api-0.6.8-py3-none-any.whl.

File metadata

File hashes

Hashes for django_requests_api-0.6.8-py3-none-any.whl
Algorithm Hash digest
SHA256 327905232defadfb963f5d216243f392ac8cfbd13056220974e283c4e34bd65c
MD5 344eab5bc5a44726abe16bca431411df
BLAKE2b-256 b2f0f8f8cb72ea4a8653b119052a0a499d56f75abbc2d2b088fda594e44becab

See more details on using hashes here.

Release history Release notifications | RSS feed

0.6.9

2 files

This release

0.6.8 This release

2 files

0.6.7

2 files

0.6.6

2 files

0.6.5

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.2

2 files

0.5.1

2 files

0.3.2

2 files

0.2.0

3 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page