mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-05-18 15:40:53 +00:00
* Remove package from sources * Add Mocker package * Add BaseModel Beside setters and getters this class implements three methods required for mocking: getOpenApiSchema, createFromData and jsonSerialize. BaseModel keeps all data values in $dataContainer like PHP client does. I don't see other way to support scalar models(enum for instance). That's why I've removed class variables generation. * Update documentation * Update PHPUnit section in readme * Add constant with models namespace This constant will be required for data deserialization when handling refs. * Refresh samples * Add samples generation config
124 lines
4.1 KiB
PHP
124 lines
4.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* OpenAPI Petstore
|
|
* PHP version 7.2
|
|
*
|
|
* @package OpenAPIServer
|
|
* @author OpenAPI Generator team
|
|
* @link https://github.com/openapitools/openapi-generator
|
|
*/
|
|
|
|
/**
|
|
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
|
* The version of the OpenAPI document: 1.0.0
|
|
* Generated by: https://github.com/openapitools/openapi-generator.git
|
|
*/
|
|
|
|
/**
|
|
* NOTE: This class is auto generated by the openapi generator program.
|
|
* https://github.com/openapitools/openapi-generator
|
|
*/
|
|
|
|
require_once __DIR__ . '/vendor/autoload.php';
|
|
|
|
use OpenAPIServer\SlimRouter;
|
|
use Psr\Http\Message\ServerRequestInterface;
|
|
use Psr\Http\Message\ResponseInterface;
|
|
use OpenAPIServer\Mock\OpenApiDataMocker;
|
|
|
|
$config = [];
|
|
|
|
/**
|
|
* Token Middleware 1.x Options
|
|
* Options `header`, `regex`, `parameter`, `cookie`, `attribute`, `path`, `except`, `authenticator`
|
|
* are handled by SlimRouter class. These options are ignored by app and they omitted from current
|
|
* example.
|
|
* Ref: https://github.com/dyorg/slim-token-authentication/tree/1.x
|
|
*/
|
|
$config['tokenAuthenticationOptions'] = [
|
|
/**
|
|
* Tokens are essentially passwords. You should treat them as such and you should always
|
|
* use HTTPS. If the middleware detects insecure usage over HTTP it will return unathorized
|
|
* with a message Required HTTPS for token authentication. This rule is relaxed for requests
|
|
* on localhost. To allow insecure usage you must enable it manually by setting secure to
|
|
* false.
|
|
* Default: true
|
|
*/
|
|
// 'secure' => true,
|
|
|
|
/**
|
|
* Alternatively you can list your development host to have relaxed security.
|
|
* Default: ['localhost', '127.0.0.1']
|
|
*/
|
|
// 'relaxed' => ['localhost', '127.0.0.1'],
|
|
|
|
/**
|
|
* By default on ocurred a fail on authentication, is sent a response on json format with a
|
|
* message (`Invalid Token` or `Not found Token`) and with the token (if found), with status
|
|
* `401 Unauthorized`. You can customize it by setting a callable function on error option.
|
|
* Default: null
|
|
*/
|
|
// 'error' => null,
|
|
];
|
|
|
|
/**
|
|
* Mocker Middleware options.
|
|
*/
|
|
$mocker = new OpenApiDataMocker();
|
|
$mocker->setModelsNamespace('OpenAPIServer\Model\\');
|
|
$config['mockerOptions'] = [
|
|
// 'dataMocker' => $mocker,
|
|
|
|
// 'getMockStatusCodeCallback' => function (ServerRequestInterface $request, $responses) {
|
|
// // check if client clearly asks for mocked response
|
|
// $pingHeader = 'X-OpenAPIServer-Mock';
|
|
// $pingHeaderCode = 'X-OpenAPIServer-Mock-Code';
|
|
// if (
|
|
// $request->hasHeader($pingHeader)
|
|
// && $request->getHeader($pingHeader)[0] === 'ping'
|
|
// ) {
|
|
// $responses = (array) $responses;
|
|
// $requestedResponseCode = ($request->hasHeader($pingHeaderCode)) ? $request->getHeader($pingHeaderCode)[0] : 'default';
|
|
// if (array_key_exists($requestedResponseCode, $responses)) {
|
|
// return $requestedResponseCode;
|
|
// }
|
|
|
|
// // return first response key
|
|
// reset($responses);
|
|
// return key($responses);
|
|
// }
|
|
|
|
// return false;
|
|
// },
|
|
|
|
// 'afterCallback' => function ($request, $response) {
|
|
// // mark mocked response to distinguish real and fake responses
|
|
// return $response->withHeader('X-OpenAPIServer-Mock', 'pong');
|
|
// },
|
|
];
|
|
|
|
$router = new SlimRouter($config);
|
|
$app = $router->getSlimApp();
|
|
|
|
/**
|
|
* The routing middleware should be added before the ErrorMiddleware
|
|
* Otherwise exceptions thrown from it will not be handled
|
|
*/
|
|
$app->addRoutingMiddleware();
|
|
|
|
/**
|
|
* Add Error Handling Middleware
|
|
*
|
|
* @param bool $displayErrorDetails -> Should be set to false in production
|
|
* @param bool $logErrors -> Parameter is passed to the default ErrorHandler
|
|
* @param bool $logErrorDetails -> Display error details in error log
|
|
* which can be replaced by a callable of your choice.
|
|
|
|
* Note: This middleware should be added last. It will not handle any exceptions/errors
|
|
* for middleware added after it.
|
|
*/
|
|
$app->addErrorMiddleware(false, true, true);
|
|
|
|
$app->run();
|