API Docs¶
JSONResolver¶
Resolve JSON objects from different URLs.
Contrib¶
This package contains utilities for various JSON packages.
Usually one has to install extra dependencies.
If you would like to use reference resolver factory for jsonschema
please install jsonresolver with jsonschema extras.
$ pip install jsonresolver[jsonschema]
JSONSchema¶
Module that implements RefResolver factory using JSONResolver.
The ref_resolver_factory uses an instance of JSONResolver for
implementation of remote URL resolver. The resolver is used to retrieve JSON
object based on registered plugins.
Example:
>>> from jsonschema import validate
>>> from jsonresolver import JSONResolver
>>> from jsonresolver.contrib.jsonschema import ref_resolver_factory
>>> schema = {'$ref': 'http://localhost:4000/schema/authors.json#'}
>>> json_resolver = JSONResolver(plugins=['demo.schema'])
>>> resolver_cls = ref_resolver_factory(json_resolver)
>>> resolver = resolver_cls.from_schema(schema)
>>> validate(['foo', 'bar'], schema, resolver=resolver)
None
JSONRef¶
Module that implements JsonLoader factory using JSONResolver.
Use json_loader_factory if you want to take advantage of default
JsonLoader.get_remote_json method for URIs that are not handled
by your JSONResolver instance.
Example:
>>> from jsonref import JsonRef
>>> from jsonresolver import JSONResolver
>>> from jsonresolver.contrib.jsonref import json_loader_factory
>>> schema = {'$ref': 'http://localhost:4000/schema/authors.json#'}
>>> json_resolver = JSONResolver(plugins=['demo.schema'])
>>> loader_cls = json_loader_factory(json_resolver)
>>> loader = loader_cls(cache_results=False)
>>> dict(JsonRef.replace_refs(schema, loader=loader))
{'type': 'array'}
# if you do not want default fallback:
>>> dict(JsonRef.replace_refs(schema, loader=json_resolver.resolve))
{'type': 'array'}