Skip to main content

directory-api-client

code-climate-image circle-ci-image codecov-image pypi-image semver-image

Great API client.


Installation

$ pip install directory-api-client

The api client expects the following settings:

Setting Notes
DIRECTORY_API_CLIENT_BASE_URL
DIRECTORY_API_CLIENT_API_KEY Unique to client. Retrieved during the on-boarding process.
DIRECTORY_API_CLIENT_SENDER_ID Unique to client. Retrieved during the on-boarding process.
DIRECTORY_API_CLIENT_DEFAULT_TIMEOUT

The following directory client core settings also apply to directory cms client:

Setting Notes
DIRECTORY_CLIENT_CORE_CACHE_EXPIRE_SECONDS Duration to store the retrieved content in the cache.
DIRECTORY_CLIENT_CORE_CACHE_LOG_THROTTLING_SECONDS Duration to throttle log events for a given url for.

And the caching expects the following key in CACHES setting: api_fallback

Once that is done the API client can be used:

from directory_api_client.client import api_client

Development

$ git clone https://github.com/uktrade/directory-api-client
$ cd directory-api-client
$ [create virtual environment and activate]
$ make test_requirements

Use make checks to validate the codebase with black and isort, in dry-run mode Use make autoformat to run black and isort in file-updating mode

Fallback cache

Where feasible the response is cached to the client's fallback cache. This allows retrieval later if API returns non successful response or times out.

When enabling the fallback cache on a handler make sure that the request's querystring or url path are unique per user, otherwise the User B's details could be leaked User A.

For example, api_client.company.profile_retrieve looks up the company for the authenticated user. The authentication header is not used when generating the cache key for the response. This means for that endpoint the querystring and url are the same for all users, so the cache key would therefore also be the same for all users. This means if API was down then all users would see the company details for the last user to successfully retrieve their company.

Publish to PyPI

The package should be published to PyPI on merge to master. If you need to do it locally then get the credentials from rattic and add the environment variables to your host machine:

Setting
DIRECTORY_PYPI_USERNAME
DIRECTORY_PYPI_PASSWORD

Then run the following command:

$ make publish

Release files for directory-api-client 28.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for directory-api-client 28.0.0
File Interpreter ABI Platform
directory_api_client-28.0.0-py3-none-any.whl Python 3 none any Details

Release files / directory_api_client-28.0.0-py3-none-any.whl

Download URL directory_api_client-28.0.0-py3-none-any.whl
Size 9.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac718f3d5b992f57278f7bcfe8644eb3a9182446dcc86250ac1d94abe5a6ed5d
BLAKE2b-256 checksum
How to use checksums
c1963d0d67879f99e010510093b83e004ec66c734dc9ba1e9fc62baaa060064c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.12.1.2 readme-renderer/45.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.7.0 tqdm/4.68.3 importlib-metadata/9.0.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.13.7

Release history Release notifications | RSS feed

This release

28.0.0 This release

1 release file

27.0.0

1 release file

26.15.2

1 release file

26.15.1

1 release file

26.15.0

1 release file

26.14.0

1 release file

26.13.0

1 release file

26.12.0

1 release file

26.9.0

1 release file

26.8.0

1 release file

26.7.2

1 release file

26.7.1

1 release file

26.7.0

1 release file

26.6.1

1 release file

26.6.0

1 release file

26.5.0

1 release file

26.4.7

1 release file

26.4.6

1 release file

26.4.5

1 release file

26.4.4

1 release file

26.4.3

1 release file

26.4.2

1 release file

26.4.1

1 release file

26.4.0

1 release file

26.3.0

1 release file

26.2.2

1 release file

26.2.1

1 release file

26.2.0

1 release file

26.1.1

1 release file

26.1.0

1 release file

26.0.0

1 release file

25.1.0

1 release file

25.0.0

1 release file

24.6.0

1 release file

24.5.1

1 release file

24.5.0

1 release file

24.4.0

1 release file

24.3.0

1 release file

24.2.0

1 release file

24.1.0

1 release file

24.0.0

1 release file

23.1.5

1 release file

23.1.4

1 release file

23.1.3

1 release file

23.0.0

1 release file

22.18.0

1 release file

22.16.0

1 release file

22.15.0

1 release file

22.12.0

1 release file

22.11.0

1 release file

22.10.0

1 release file

22.9.1

1 release file

22.9.0

1 release file

22.8.0

1 release file

22.7.0

1 release file

22.6.0

1 release file

22.5.0

1 release file

22.4.0

1 release file

22.3.0

1 release file

22.2.0

1 release file

22.1.0

1 release file

22.0.0

1 release file

21.10.0

1 release file

21.9.0

1 release file

21.8.0

1 release file

21.7.0

1 release file

21.6.0

1 release file

21.5.0

1 release file

21.4.0

1 release file

21.3.0

1 release file

21.2.2

1 release file

21.2.1

1 release file

21.2.0

1 release file

21.1.0

1 release file

21.0.1

1 release file

21.0.0

1 release file

20.0.0

1 release file

19.0.0

1 release file

18.0.0

1 release file

17.1.0

1 release file

17.0.0

1 release file

16.3.0

1 release file

16.2.0

1 release file

16.1.0

1 release file

16.0.0

1 release file

15.1.0

1 release file

15.0.0

1 release file

14.0.0

1 release file

13.1.0

1 release file

13.0.0

1 release file

12.2.0

1 release file

12.1.0

1 release file

12.0.0

1 release file

11.2.0

1 release file

11.1.0

1 release file

11.0.0

1 release file

10.0.2

1 release file

10.0.1

1 release file

10.0.0

1 release file

9.17.0

1 release file

9.16.0

1 release file

9.15.3

1 release file

9.15.2

1 release file

9.15.1

1 release file

9.15.0

1 release file

9.14.0

1 release file

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