Skip to main content

Reusable code for consumers of ZGW APIs

Project description

1 Welcome to ZGW Consumers’ documentation!

Version:

0.17.1

Source:

https://github.com/maykinmedia/zgw-consumers

Keywords:

OpenAPI, Zaakgericht Werken, Common Ground, NLX

PythonVersion:

3.7, 3.8, 3.9

Run CI Coverage status Code linting

python-versions django-versions pypi-version

Manage your external API’s to consume.

2 Features

  • Store services with their configuration in the database

  • Integrate with OpenAPI 3.0 specifications

  • NLX support

  • Declare data/domain objects as modern Python dataclasses

3 Installation

3.1 Requirements

  • Python 3.6 or newer

  • setuptools 30.3.0 or newer

  • Django 2.2 or newer

3.2 Install

  1. Install from PyPI

pip install zgw-consumers
  1. Add zgw_consumers to the INSTALLED_APPS setting.

  2. Optionally override ZGW_CONSUMERS_CLIENT_CLASS to a custom client class.

  3. Optionally specify ZGW_CONSUMERS_OAS_CACHE to point to a separate django cache. Defaults to django.core.cache.DEFAULT_CACHE_ALIAS, which is default in practice. For performance reasons we highly recommend to use a real cache backend like Redis or Memcache.

4 Usage

In the Django admin, you can create Service instances to define your external APIs.

Client

To get a client for a given resource, you can use:

from zgw_consumers.models import Service

client = Service.get_client(some_url)

Or, to just retrieve the auth header(s):

from zgw_consumers.models import Service

auth = Service.get_auth_header(some_url)

Data model

Use zgw_consumers.api_models.base.factory to turn raw JSON responses into instances of domain models:

from zgw_consumers.api_models.base import factory
from zgw_consumers.api_models.zaken import Zaak

results = client.list("zaak")["results"]

return factory(Zaak, results)

It works for both collections and scalar values, and takes care of the camel-case to snake case conversion.

You can also define your own data models, take a look at the zgw_consumers.api_models package for inspiration.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

zgw-consumers-0.17.1.tar.gz (26.3 kB view details)

Uploaded Source

Built Distribution

zgw_consumers-0.17.1-py3-none-any.whl (40.3 kB view details)

Uploaded Python 3

File details

Details for the file zgw-consumers-0.17.1.tar.gz.

File metadata

  • Download URL: zgw-consumers-0.17.1.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for zgw-consumers-0.17.1.tar.gz
Algorithm Hash digest
SHA256 9180e234ca4321d886b6186e8fe69009577945b1b42c32829b3f6f581f2025f6
MD5 5b641f83557fd3e4e60cdd396b47d5a9
BLAKE2b-256 788bd34034642e999735572014d9183961a03dd211c68471262fd33fd407902e

See more details on using hashes here.

File details

Details for the file zgw_consumers-0.17.1-py3-none-any.whl.

File metadata

  • Download URL: zgw_consumers-0.17.1-py3-none-any.whl
  • Upload date:
  • Size: 40.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for zgw_consumers-0.17.1-py3-none-any.whl
Algorithm Hash digest
SHA256 740c3d823aac5d47562b4aa0d268ed99d663c7b31dfe7d595ed475b9547eaf6c
MD5 0f4d3beb1cd429a01eee9a823c0da4e3
BLAKE2b-256 a73ed9a7458bb2bc72b3367a44ee6faa930d6abfb657f095385645f3a6aa3bf9

See more details on using hashes here.

Supported by

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