canvural/php-openapi-faker

Library to generate fake data for OpenAPI request/response/schemas.

2.1.0 2022-11-22 11:14 UTC

README

Tests codecov Infection MSI PHPStan

Library to generate fake data for your OpenAPI requests, responses and schemas.

$faker = \Vural\OpenAPIFaker\OpenAPIFaker::createFromJson($yourSchemaAsJson);
$fakeData = $faker->mockResponse('/todos','GET');

Installation

You can install the package via composer:

composer require --dev canvural/php-openapi-faker

Usage

First you need to create an instance of OpenAPIFaker with your schema that you want to fake data from. You can use createFromJson, createFromYaml or createFromSchema to create an instance of OpenAPIFaker.

$faker = \Vural\OpenAPIFaker\OpenAPIFaker::createFromJson($yourSchemaAsJson);

Then you can use mockResponse, mockResponseForExample, mockRequest, mockRequestForExample, mockComponentSchema and mockComponentSchemaForExample methods on it to generate fake data for your requests, responses and schemas. Like so:

$fakeData = $faker->mockResponse('/todos','GET');

Options

There are some options you can use to modify some behaviour. You can pass options as an associative array to setOptions method in OpenAPIFaker. For example:

$faker = \Vural\OpenAPIFaker\OpenAPIFaker::createFromJson($yourSchemaAsJson)
    ->setOptions(['minItems' => 5]);

Below you can find explanation for each option.

minItems

Overrides minItems property if it's less than this value.

maxItems

Override maxItems if it's greater than this value.

alwaysFakeOptionals

If enabled, every property or item will be generated regardless if they are required or not. Default: false

strategy

By default, OpenAPIFaker uses a dynamic generation strategy. You can enable the static examples generation by using the static strategy. Default: dynamic

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

People:

Resources:

License

The MIT License (MIT). Please see License File for more information.