OpenAPI Specification handling

The processing of external OAS is limited to OAS 3.x. Most of the heavy lifting to interact with remote APIs is done through the zds-client.

Utility module for Open API Specification 3.0.x.

This should get merged into gemma-zds-client, but some heavy refactoring is needed for that.

vng_api_common.oas.obj_has_shape(obj: Union[list, dict], schema: dict, resource: str) bool

Compare an instance of an object with the expected shape from an OAS 3 schema.

..todo:: doesn’t handle references and nested schema’s yet.

  • obj – the value retrieved from the endpoint, json-decoded to a dict or list

  • schema – the OAS 3.0.x schema to test against, yaml-decoded to dict

  • resource – the name of the resource to test the schape against