Skip to main content

Reusable code for consumers of ZGW APIs

Project description

1   Welcome to ZGW Consumers’ documentation!

Keywords:OpenAPI, Zaakgericht Werken, Common Ground, NLX
PythonVersion:3.6, 3.7, 3.8

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.


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

Download files

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

Files for zgw-consumers, version 0.15.2
Filename, size File type Python version Upload date Hashes
Filename, size zgw_consumers-0.15.2-py3-none-any.whl (36.8 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size zgw-consumers-0.15.2.tar.gz (24.7 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page