1. Go to this page and download the library: Download chstudio/raven library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
chstudio / raven example snippets
use CHStudio\Raven\Bridge\LeagueOpenAPIValidation\Factory;
use CHStudio\Raven\Validator\Expectation\ExpectationCollection;
// Load OpenAPI description file
$factory = Factory::fromYamlFile('specific/path/to/openapi.yaml');
$executor = new Executor(
/** Your own HTTP client implementation */,
$factory->getRequestValidator(),
$factory->getResponseValidator()
);
$executor->execute($request);
use CHStudio\Raven\Http\Factory\RequestFactory;
use Nyholm\Psr7\Factory\Psr17Factory;
$psrFactory = new Psr17Factory();
$requestFactory = new RequestFactory($psrFactory, $psrFactory);
$request = $requestFactory->fromArray([
'uri' => 'http://myhost.com/api/users/me',
'method' => 'POST',
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer token'
],
'body' => '{"aSimple": "objectDefinition", "yep": true}'
]);
use CHStudio\Raven\Http\Factory\Resolver\ArrayValueResolver;
use CHStudio\Raven\Http\Factory\Resolver\FakerValueResolver;
use CHStudio\Raven\Http\Factory\Resolver\PassThroughValueResolver;
//Configure your own faker generator, maybe with some `addProvider` calls.
$generator = \Faker\Factory::create();
//Configure specific resolver logic.
$valueResolver = new ArrayValueResolver(
new FakerValueResolver(
$generator,
new PassThroughValueResolver()
)
);
//Apply it on the request factory built in the previous section.
$requestFactory = new RequestUriParametersResolver(
$valueResolver,
new RequestBodyResolver(
$valueResolver,
$requestFactory
)
);
$request = $requestFactory->fromArray([
'uri' => [
'base' => 'http://myhost.com/api/users/{id}',
'parameters' => [
//This value will be resolved by `RequestUriParametersResolver`
'{id}' => '<userId()>'
]
],
'method' => 'POST',
'body' => [
'scalar' => [
'bool' => true,
'int' => 23456,
'float' => 18.06
],
//Built in Faker provider resolved by `RequestBodyResolver`
'faker' => [
'name' => '<name()>',
'creationDate' => '<date("Y-m-d")>',
]
//Specific provider to query database
'institution' => '<institutionId("Massachusetts General Hospital")>'
]
]);
/**
* This will generate an URL like this: http://myhost.com/api/users/a5098711-b6b2-4acb-96ea-f8baf496c700
*
* This will generate the following body:
*
* {
* "scalar": {
* "bool": true,
* "int": 23456,
* "float": 18.06
* },
* "faker": {
* "name": "John Doe",
* "creationDate": "2022-10-03"
* },
* "institution": "bf91c434-dcf3-3a4c-b49a-12e0944ef1e2"
* }
*/