Generieke client voor GEMMA-zaken componenten
Project description
De ZDS-Client is een (voorlopig) interne client die op basis van OAS 3.0 specificaties met GEMMA-zaken componenten communiceert.
1 Features
Ophalen van OAS 3.0 spec & caching
Aanmaken van resources volgens specificatie
Generieke opzet, maar specifiek gebruik in de zaakgericht-werken services
Introspectie in het OAS schema: lees op basis van een resource URL uit wat er precies hoort achter deze URL te zitten.
ZDS autorisatiemodel via JWT out-of-the-box ondersteund.
2 Installatie
2.1 Benodigdheden
Python 3.6 of hoger
setuptools 30.3.0 of hoger
2.2 Installeren
pip install gemma-zds-client
3 Gebruik
3.1 Initialiseren (statische configuratie)
De client moet geinitialiseerd worden met de locatie van de componenten. Dit kan eenmalig of just-in-time wanneer je de client nodig hebt:
from zds_client import Client
Client.load_config('/pad/naar/config.yml')
De makkelijkste manier is configuratie via een yaml bestand, in het formaat:
---
zrc:
scheme: http
host: localhost
port: 8000
auth:
client_id: my-zrc-client-id
secret: my-zrc-client-secret
scopes:
- zds.scopes.zaken.aanmaken
drc:
scheme: http
host: localhost
port: 8001
ztc:
scheme: http
host: localhost
port: 8002
orc:
scheme: http
host: localhost
port: 8003
De key is de naam van de component.
Je kan echter ook de configuratie zonder yaml bestand doen, en volledig gebruik maken van Python dictonaries, bijvoorbeeld:
from zds_client import Client
ZRC = {
'scheme': 'http',
'host': 'localhost',
'port': 8000,
}
DRC = {
'scheme': 'http',
'host': 'localhost',
'port': 8001,
}
Client.load_config(**{
'zrc': ZRC,
'drc': DRC,
...
})
3.2 Initialiseren (ad-hoc configuratie)
Je kan ook een client instance verkrijgen op basis van een specifieke resource URL.
from zds_client import Client
client = Client.from_url('https://api.nl/v1/resource/123')
Indien authorisatie hierop nodig is, kan je deze zelf assignen:
from zds_client import ClientAuth
client.auth = ClientAuth(
client_id='my-client-id',
secret='my-client-secret',
**claims
)
3.3 Resources manipuleren
Per component kan je vervolgens een client resources laten opvragen of manipuleren:
zrc_client = Client('zrc') # gebruik alias uit configuratie
# oplijsten
zaken = zrc_client.list('zaak')
# opvragen
zaak = zrc_client.retrieve('zaak', uuid='<uuid>')
# opvragen met URL
zaak = zrc_client.retrieve('zaak', url='<zaak_url>')
# aanmaken
zaak = zrc_client.create('zaak', {
'bronorganisatie': '000000000',
'zaaktype': 'http://localhost:8002/api/v1/zaaktypen/<uuid>'
})
3.4 Schema introspectie
Met de schema module kan je introspectie doen op resource URLs:
from zds_client import Client
from zds_client.schema import Schema
zrc_client = Client('zrc') # gebruik alias uit configuratie
schema = Schema(zrc_client.schema)
input_schema = schema.get_request_resource_schema(
'https://api.nl/v1/resource/123', method='GET'
)
assert input_schema['type'] == 'object'
params = schema.get_request_parameters(
'https://api.nl/v1/resource/123', method='GET'
)
assert type(params) == list
output_schema = schema.get_response_resource_schema(
'https://api.nl/v1/resource/123',
method='GET', status_code='200'
)
assert output_schema['type'] == 'object'
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
Built Distribution
Hashes for gemma_zds_client-0.10.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 655053a6af0a325353853caa49114add0b7ae2bbaffa54a2791f4610e0b2b9b2 |
|
MD5 | f1cfe604553b19f0a9919780bd523e0e |
|
BLAKE2b-256 | 820ea803b1c62c721dd00d28f7e167a54c55a84ab7917582136a55d5c6d616f4 |