A php library to manipulate swagger/Open API specifications.
composer require gossi/swagger
Read an api.json
file:
$swagger = Swagger::fromFile('api.json');
// or
$swagger = new Swagger($array);
There are two major collections: Paths
and Definitions
. The API is similar for both:
$paths = $swagger->getPaths();
$p = new Path('/user');
// adding
$paths->add($p);
// retrieving
if ($paths->has('/user') || $paths->contains($p)) {
$path = $paths->get('/user');
}
// removing
$paths->remove('/user');
// iterating
foreach ($paths as $path) {
// do sth with $path
}
Other collections are: Headers
, Parameters
, Responses
and SecurityDefinitions
.
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.
Feel free to fork and submit a pull request (don't forget the tests) and I am happy to merge.