php-openapi icon indicating copy to clipboard operation
php-openapi copied to clipboard

Add a way to create schemas

Open Herrick19 opened this issue 3 years ago • 2 comments

Hi,

The library allows to create paths, but apparently doesn't provide any way to add schemas.

Doing something like: $objOpenapi->components->schemas['foo'] = new Schema([ 'type' => Type::INTEGER, ]);

gives a warning and the element is not created: PHP Notice: Indirect modification of overloaded property cebe\openapi\spec\Components::$schemas has no effect in G:\test.php on line 119

Am I missing something ?

If not, it would be nice if we could create dynamically elements using this library.

Thank in advance

Herrick19 avatar Mar 16 '22 03:03 Herrick19

You can currently do it like this:


$schemas = []; // or $schemas = $objOpenapi->components->schemas;

$schemas['foo'] = new Schema([ 'type' => Type::INTEGER, ]);
// add more here ...

$objOpenapi->components->schemas = $schemas;

This library was initally created to only read OpenAPI files, writing was added later so the programming API is not optimal.

cebe avatar Apr 20 '22 14:04 cebe