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
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.
1.1 Geplande features
Ophalen OAS 3.0 spec zonder conversie
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 doe je eenmalig:
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', base_dir='/path/to/node_modules')
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.8.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0775d9d7b3c06833fc7483f65a3bcf6f0e1462000a6ba25519823d6ee1dd448a |
|
MD5 | 5263611410f01a336b0f7cf65ece5cb6 |
|
BLAKE2b-256 | b6bfcab57116667267360705fe91637625bdd2b6a7da94b1d47c220bb1b98a6e |