activerules / json-reference
A library for working with JSON References
Requires
- php: >=5.6.0
- psr/simple-cache: ^1.0
- sabre/uri: ^1.2.1
Requires (Dev)
- ext-curl: *
- cache/array-adapter: ^0.4.2
- cache/predis-adapter: ^0.4.0
- cache/simple-cache-bridge: ^0.1.0
- phpbench/phpbench: ^0.13.0
- phpunit/phpunit: ^5.7
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: ~2.3
This package is not auto-updated.
Last update: 2024-10-27 05:36:12 UTC
README
NOTE:
This was forked from the referencer written by The PHP League.
Our only change is to support "psuedo-relative" paths.
Example:
{ "$ref": "file://./address.json" }
The psuedo-relative paths are resolved relative to a defined root directory.
That root directory is defined by the AR_JSON_SCHEMA_DIR
ENV variable.
If that is NOT defined the code uses a schema
directory relative to the current working directory as the root.
The Basics
Most JSON schemas use JSON references to minimize duplication. A JSON reference is an object that looks like {"$ref": "http://some/where"} and points to a JSON object somewhere else.
JSON Reference is a library for resolving references.
- Resolves all references, replacing them with proxy objects.
- Supports references to external files, urls, or custom sources.
- Safely resolves circular references.
- Supports caching dereferenced schemas.
- Dereferenced schemas can be safely json_encoded.
- Works with Swagger, JSON Schema, and any other spec compliant JSON documents.
Install
Via Composer
composer require activerules/json-reference
Usage
Our changes shouldn't change the behavior of the dereferenced files so all of the original documentation should be applicable.
Complete documentation is available here.
Change log
Please see CHANGELOG for more information about what has changed recently.
Testing
$ composer test-server
$ composer test
Benchmarks
The benchmarks require a local redis server to be running on localhost at the default port.
$ composer bench
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email bwinkers@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.