exsyst / swagger
A php library to manipulate Swagger specifications
Installs: 14 709 394
Dependents: 8
Suggesters: 0
Security: 0
Stars: 362
Watchers: 3
Forks: 18
Open Issues: 2
Requires
- php: ^7.0|^8.0
Requires (Dev)
- symfony/phpunit-bridge: ^4.1.8|^5.0
README
A php library to manipulate Swagger/Open API specifications.
Installation
composer require EXSyst/Swagger
Usage
Read an api.json
file:
$swagger = Swagger::fromFile('api.json'); // or $swagger = new Swagger($array);
Collections
There are two major collections: Paths
and Definitions
. The API is similar for both:
$paths = $swagger->getPaths(); $p = new Path('/user'); foreach ($paths as $path) { // adding $paths->add($a); // retrieving if ($paths->has('/user') || $paths->contains($p)) { $path = $paths->get('/user'); } // removing $paths->remove('/user'); }
Models
There are a lot of models, e.g. the mentioned Path
above. The API is well written, so it works with the auto-completion of your IDE. It is straight forward and uses the same naming scheme as the OpenAPI specification.
Contributing
Feel free to fork and submit a pull request (don't forget the tests) and I am happy to merge.