[Slim] Abstract API controllers (#1483)

* [Slim] Add abstract prefix to API controllers

* [Slim] Add userClassname property to codegen

* [Slim] Add src folder to Composer autoload

* [Slim] Change template to produce abstract controllers

* [Slim] Update API tests template

* [Slim] Add implementation note

* [Slim] Remove deprecated AbstractApiController

* [Slim] Refresh samples
This commit is contained in:
Yuriy Belenko 2018-12-23 20:51:26 +05:00 committed by William Cheng
parent f1831533d4
commit 72dcee9d86
34 changed files with 1151 additions and 706 deletions

View File

@ -36,6 +36,7 @@ public class PhpSlimServerCodegen extends AbstractPhpCodegen {
private static final Logger LOGGER = LoggerFactory.getLogger(PhpSlimServerCodegen.class); private static final Logger LOGGER = LoggerFactory.getLogger(PhpSlimServerCodegen.class);
public static final String PHPCS_STANDARD = "phpcsStandard"; public static final String PHPCS_STANDARD = "phpcsStandard";
public static final String USER_CLASSNAME_KEY = "userClassname";
protected String groupId = "org.openapitools"; protected String groupId = "org.openapitools";
protected String artifactId = "openapi-server"; protected String artifactId = "openapi-server";
@ -125,7 +126,6 @@ public class PhpSlimServerCodegen extends AbstractPhpCodegen {
supportingFiles.add(new SupportingFile("composer.mustache", "", "composer.json")); supportingFiles.add(new SupportingFile("composer.mustache", "", "composer.json"));
supportingFiles.add(new SupportingFile("index.mustache", "", "index.php")); supportingFiles.add(new SupportingFile("index.mustache", "", "index.php"));
supportingFiles.add(new SupportingFile(".htaccess", "", ".htaccess")); supportingFiles.add(new SupportingFile(".htaccess", "", ".htaccess"));
supportingFiles.add(new SupportingFile("AbstractApiController.mustache", toSrcPath(invokerPackage, srcBasePath), toAbstractName("ApiController") + ".php"));
supportingFiles.add(new SupportingFile("SlimRouter.mustache", toSrcPath(invokerPackage, srcBasePath), "SlimRouter.php")); supportingFiles.add(new SupportingFile("SlimRouter.mustache", toSrcPath(invokerPackage, srcBasePath), "SlimRouter.php"));
supportingFiles.add(new SupportingFile("phpunit.xml.mustache", "", "phpunit.xml.dist")); supportingFiles.add(new SupportingFile("phpunit.xml.mustache", "", "phpunit.xml.dist"));
} }
@ -134,6 +134,7 @@ public class PhpSlimServerCodegen extends AbstractPhpCodegen {
public Map<String, Object> postProcessOperationsWithModels(Map<String, Object> objs, List<Object> allModels) { public Map<String, Object> postProcessOperationsWithModels(Map<String, Object> objs, List<Object> allModels) {
Map<String, Object> operations = (Map<String, Object>) objs.get("operations"); Map<String, Object> operations = (Map<String, Object>) objs.get("operations");
List<CodegenOperation> operationList = (List<CodegenOperation>) operations.get("operation"); List<CodegenOperation> operationList = (List<CodegenOperation>) operations.get("operation");
addUserClassnameToOperations(operations);
escapeMediaType(operationList); escapeMediaType(operationList);
return objs; return objs;
} }
@ -160,8 +161,41 @@ public class PhpSlimServerCodegen extends AbstractPhpCodegen {
return objs; return objs;
} }
/**
* Sets PHP CodeSniffer &lt;standard&gt; option. Accepts name or path of the coding standard to use.
*
* @param phpcsStandard standard option value
*/
public void setPhpcsStandard(String phpcsStandard) { public void setPhpcsStandard(String phpcsStandard) {
this.phpcsStandard = phpcsStandard; this.phpcsStandard = phpcsStandard;
} }
@Override
public String toApiName(String name) {
if (name.length() == 0) {
return toAbstractName("DefaultApi");
}
return toAbstractName(initialCaps(name) + "Api");
}
@Override
public String toApiTestFilename(String name) {
if (name.length() == 0) {
return "DefaultApiTest";
}
return initialCaps(name) + "ApiTest";
}
/**
* Strips out abstract prefix and suffix from classname and puts it in "userClassname" property of operations object.
*
* @param operations codegen object with operations
*/
private void addUserClassnameToOperations(Map<String, Object> operations) {
String classname = (String) operations.get("classname");
classname = classname.replaceAll("^" + abstractNamePrefix, "");
classname = classname.replaceAll(abstractNameSuffix + "$", "");
operations.put(USER_CLASSNAME_KEY, classname);
}
} }

View File

@ -1,64 +0,0 @@
<?php
/**
* Abstract Api Controller
*
* PHP version 5
*
* @category Class
* @package {{invokerPackage}}
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
*/
/**
{{#appName}}
* {{{appName}}}
*
{{/appName}}
{{#appDescription}}
* {{{appDescription}}}
{{/appDescription}}
{{#version}}
* OpenAPI spec version: {{{version}}}
{{/version}}
{{#infoEmail}}
* Contact: {{{infoEmail}}}
{{/infoEmail}}
* 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
* Do not edit the class manually.
*/
namespace {{invokerPackage}};
/**
* ApiServer Class Doc Comment
*
* PHP version 5
*
* @category Class
* @package {{invokerPackage}}
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
*/
abstract class {{abstractNamePrefix}}ApiController{{abstractNameSuffix}}
{
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
}

View File

@ -44,12 +44,41 @@ Command | Tool | Target
`$ composer run phpcs` | PHP CodeSniffer | All files `$ composer run phpcs` | PHP CodeSniffer | All files
`$ composer run phplint` | phplint | All files `$ composer run phplint` | phplint | All files
## Show errors
Change line in `./index.php`:
```diff
--- $router = new SlimRouter();
+++ $router = new SlimRouter(['settings' => ['displayErrorDetails' => true]]);
```
{{#generateApiDocs}} {{#generateApiDocs}}
## API Endpoints ## API Endpoints
All URIs are relative to *{{{basePath}}}* All URIs are relative to *{{{basePath}}}*
> Important! Do not modify abstract API controllers directly! Instead extend them by implementation classes like:
```php
// src/Api/PetApi.php
namespace {{apiPackage}};
use {{apiPackage}}\AbstractPetApi;
class PetApi extends AbstractPetApi
{
public function addPet($request, $response, $args)
{
// your implementation of addPet method here
}
}
```
Place all your implementation classes in `./src` folder accordingly.
For instance, when abstract class located at `./lib/Api/AbstractPetApi.php` you need to create implementation class at `./src/Api/PetApi.php`.
Class | Method | HTTP request | Description Class | Method | HTTP request | Description
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | **{{operationId}}** | **{{httpMethod}}** {{path}} | {{#summary}}{{{summary}}}{{/summary}} {{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | **{{operationId}}** | **{{httpMethod}}** {{path}} | {{#summary}}{{{summary}}}{{/summary}}

View File

@ -33,9 +33,6 @@
*/ */
namespace {{invokerPackage}}; namespace {{invokerPackage}};
{{#apis}}
use {{apiPackage}}\{{classname}};
{{/apis}}
use Slim\App; use Slim\App;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use InvalidArgumentException; use InvalidArgumentException;
@ -47,7 +44,7 @@ use Tuupola\Middleware\HttpBasicAuthentication;
* PHP version 5 * PHP version 5
* *
* @category Class * @category Class
* @package {{apiPackage}} * @package {{invokerPackage}}
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
@ -59,6 +56,37 @@ class SlimRouter
*/ */
private $slimApp; private $slimApp;
/** @var array[] list of all api operations */
private $operations = [
{{#apis}}
{{#operations}}
{{#operation}}
[
'httpMethod' => '{{httpMethod}}',
'basePathWithoutHost' => '{{{basePathWithoutHost}}}',
'path' => '{{path}}',
'apiPackage' => '{{apiPackage}}',
'classname' => '{{classname}}',
'userClassname' => '{{userClassname}}',
'operationId' => '{{operationId}}',
'authMethods' => [
{{#hasAuthMethods}}
{{#authMethods}}
{{#isBasic}}
[
'type' => '{{type}}',
'isBasic' => true,
],
{{/isBasic}}
{{/authMethods}}
{{/hasAuthMethods}}
],
],
{{/operation}}
{{/operations}}
{{/apis}}
];
/** /**
* Class constructor * Class constructor
* *
@ -67,7 +95,7 @@ class SlimRouter
*/ */
public function __construct($container = []) public function __construct($container = [])
{ {
$app = new App($container); $this->slimApp = new App($container);
$basicAuth = new HttpBasicAuthentication([ $basicAuth = new HttpBasicAuthentication([
"secure" => false, "secure" => false,
@ -78,26 +106,53 @@ class SlimRouter
} }
]); ]);
{{#apis}} foreach ($this->operations as $operation) {
{{#operations}} $callback = function ($request, $response, $arguments) use ($operation) {
{{#operation}} $message = "How about extending {$operation['classname']} by {$operation['apiPackage']}\\{$operation['userClassname']} class implementing {$operation['operationId']} as a {$operation['httpMethod']} method?";
$app->{{httpMethod}}( throw new \Exception($message);
'{{{basePathWithoutHost}}}{{{path}}}', return $response->withStatus(501)->write($message);
{{classname}}::class . ':{{operationId}}' };
{{#hasAuthMethods}} $middlewares = [];
{{#authMethods}}
{{#isBasic}}
)->add(
$basicAuth
{{/isBasic}}
{{/authMethods}}
{{/hasAuthMethods}}
);
{{/operation}}
{{/operations}}
{{/apis}}
$this->slimApp = $app; if (class_exists("\\{$operation['apiPackage']}\\{$operation['userClassname']}")) {
$callback = "\\{$operation['apiPackage']}\\{$operation['userClassname']}:{$operation['operationId']}";
}
foreach ($operation['authMethods'] as $authMethod) {
if ($authMethod['type'] === 'http') {
$middlewares[] = $basicAuth;
}
}
$this->addRoute(
[$operation['httpMethod']],
"{$operation['basePathWithoutHost']}{$operation['path']}",
$callback,
$middlewares
)->setName($operation['operationId']);
}
}
/**
* Add route with multiple methods
*
* @param string[] $methods Numeric array of HTTP method names
* @param string $pattern The route URI pattern
* @param callable|string $callable The route callback routine
* @param array|null $middlewares List of middlewares
*
* @return Slim\Interfaces\RouteInterface
*
* @throws InvalidArgumentException if the route pattern isn't a string
*/
public function addRoute($methods, $pattern, $callable, $middlewares = [])
{
$route = $this->slimApp->map($methods, $pattern, $callable);
foreach ($middlewares as $middleware) {
$route->add($middleware);
}
return $route;
} }
/** /**

View File

@ -34,8 +34,6 @@
*/ */
namespace {{apiPackage}}; namespace {{apiPackage}};
use {{invokerPackage}}\{{abstractNamePrefix}}ApiController{{abstractNameSuffix}};
/** /**
* {{classname}} Class Doc Comment * {{classname}} Class Doc Comment
* *
@ -46,8 +44,24 @@ use {{invokerPackage}}\{{abstractNamePrefix}}ApiController{{abstractNameSuffix}}
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
class {{classname}} extends {{abstractNamePrefix}}ApiController{{abstractNameSuffix}} abstract class {{classname}}
{ {
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
{{#operations}} {{#operations}}
{{#operation}} {{#operation}}
@ -66,6 +80,8 @@ class {{classname}} extends {{abstractNamePrefix}}ApiController{{abstractNameSuf
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function {{operationId}}($request, $response, $args) public function {{operationId}}($request, $response, $args)
{ {
@ -99,8 +115,10 @@ class {{classname}} extends {{abstractNamePrefix}}ApiController{{abstractNameSuf
{{#hasBodyParam}} {{#hasBodyParam}}
$body = $request->getParsedBody(); $body = $request->getParsedBody();
{{/hasBodyParam}} {{/hasBodyParam}}
$response->write('How about implementing {{nickname}} as a {{httpMethod}} method ?'); $message = "How about implementing {{nickname}} as a {{httpMethod}} method in {{apiPackage}}\{{userClassname}} class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
{{/operation}} {{/operation}}
{{/operations}} {{/operations}}

View File

@ -1,6 +1,6 @@
<?php <?php
/** {{#operations}}/**
* {{classname}}Test * {{userClassname}}Test
* PHP version 5 * PHP version 5
* *
* @category Class * @category Class
@ -34,19 +34,19 @@
namespace {{apiPackage}}; namespace {{apiPackage}};
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use {{apiPackage}}\{{classname}}; use {{apiPackage}}\{{userClassname}};
/** /**
* {{classname}}Test Class Doc Comment * {{userClassname}}Test Class Doc Comment
* *
* @category Class * @category Class
* @description {{#description}}{{description}}{{/description}}{{^description}}{{classname}}{{/description}} * @description {{#description}}{{description}}{{/description}}{{^description}}{{userClassname}}{{/description}}
* @package {{apiPackage}} * @package {{apiPackage}}
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \{{modelPackage}}\{{classname}} * @coversDefaultClass \{{apiPackage}}\{{userClassname}}
*/ */
{{#operations}}class {{classname}}Test extends TestCase class {{userClassname}}Test extends TestCase
{ {
/** /**

View File

@ -11,7 +11,10 @@
"squizlabs/php_codesniffer": "^3.0" "squizlabs/php_codesniffer": "^3.0"
}, },
"autoload": { "autoload": {
"psr-4": { "{{escapedInvokerPackage}}\\": "{{srcBasePath}}/" } "psr-4": { "{{escapedInvokerPackage}}\\": [
"{{srcBasePath}}/",
"src/"
]}
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "{{escapedInvokerPackage}}\\": "{{testBasePath}}/" } "psr-4": { "{{escapedInvokerPackage}}\\": "{{testBasePath}}/" }

View File

@ -44,14 +44,43 @@ Command | Tool | Target
`$ composer run phpcs` | PHP CodeSniffer | All files `$ composer run phpcs` | PHP CodeSniffer | All files
`$ composer run phplint` | phplint | All files `$ composer run phplint` | phplint | All files
## Show errors
Change line in `./index.php`:
```diff
--- $router = new SlimRouter();
+++ $router = new SlimRouter(['settings' => ['displayErrorDetails' => true]]);
```
## API Endpoints ## API Endpoints
All URIs are relative to *http://petstore.swagger.io *_/ ' \" =end -- \\r\\n \\n \\r/v2 *_/ ' \" =end -- \\r\\n \\n \\r* All URIs are relative to *http://petstore.swagger.io *_/ ' \" =end -- \\r\\n \\n \\r/v2 *_/ ' \" =end -- \\r\\n \\n \\r*
> Important! Do not modify abstract API controllers directly! Instead extend them by implementation classes like:
```php
// src/Api/PetApi.php
namespace OpenAPIServer\Api;
use OpenAPIServer\Api\AbstractPetApi;
class PetApi extends AbstractPetApi
{
public function addPet($request, $response, $args)
{
// your implementation of addPet method here
}
}
```
Place all your implementation classes in `./src` folder accordingly.
For instance, when abstract class located at `./lib/Api/AbstractPetApi.php` you need to create implementation class at `./src/Api/PetApi.php`.
Class | Method | HTTP request | Description Class | Method | HTTP request | Description
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
*FakeApi* | **testCodeInjectEndRnNR** | **PUT** /fake | To test code injection *_/ ' \" =end -- \\r\\n \\n \\r *AbstractFakeApi* | **testCodeInjectEndRnNR** | **PUT** /fake | To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
## Models ## Models

View File

@ -11,7 +11,10 @@
"squizlabs/php_codesniffer": "^3.0" "squizlabs/php_codesniffer": "^3.0"
}, },
"autoload": { "autoload": {
"psr-4": { "OpenAPIServer\\": "lib/" } "psr-4": { "OpenAPIServer\\": [
"lib/",
"src/"
]}
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "OpenAPIServer\\": "test/" } "psr-4": { "OpenAPIServer\\": "test/" }

View File

@ -1,56 +0,0 @@
<?php
/**
* Abstract Api Controller
*
* PHP version 5
*
* @category Class
* @package OpenAPIServer
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
*/
/**
* OpenAPI Petstore *_/ ' \" =end -- \\r\\n \\n \\r
*
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ *_/ ' \" =end --
* OpenAPI spec version: 1.0.0 *_/ ' \" =end -- \\r\\n \\n \\r
* Contact: something@something.abc *_/ ' \" =end -- \\r\\n \\n \\r
* 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
* Do not edit the class manually.
*/
namespace OpenAPIServer;
/**
* ApiServer Class Doc Comment
*
* PHP version 5
*
* @category Class
* @package OpenAPIServer
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
*/
abstract class AbstractApiController
{
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
}

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* FakeApi * AbstractFakeApi
* *
* PHP version 5 * PHP version 5
* *
@ -26,10 +26,8 @@
*/ */
namespace OpenAPIServer\Api; namespace OpenAPIServer\Api;
use OpenAPIServer\AbstractApiController;
/** /**
* FakeApi Class Doc Comment * AbstractFakeApi Class Doc Comment
* *
* PHP version 5 * PHP version 5
* *
@ -38,9 +36,25 @@ use OpenAPIServer\AbstractApiController;
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
class FakeApi extends AbstractApiController abstract class AbstractFakeApi
{ {
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
/** /**
* PUT testCodeInjectEndRnNR * PUT testCodeInjectEndRnNR
* Summary: To test code injection *_/ &#39; \&quot; &#x3D;end -- \\r\\n \\n \\r * Summary: To test code injection *_/ &#39; \&quot; &#x3D;end -- \\r\\n \\n \\r
@ -49,11 +63,15 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testCodeInjectEndRnNR($request, $response, $args) public function testCodeInjectEndRnNR($request, $response, $args)
{ {
$testCodeInjectEndRnNR = $request->getParsedBodyParam('test code inject */ &#39; &quot; &#x3D;end -- \r\n \n \r'); $testCodeInjectEndRnNR = $request->getParsedBodyParam('test code inject */ &#39; &quot; &#x3D;end -- \r\n \n \r');
$response->write('How about implementing testCodeInjectEndRnNR as a PUT method ?'); $message = "How about implementing testCodeInjectEndRnNR as a PUT method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
} }

View File

@ -26,7 +26,6 @@
*/ */
namespace OpenAPIServer; namespace OpenAPIServer;
use OpenAPIServer\Api\FakeApi;
use Slim\App; use Slim\App;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use InvalidArgumentException; use InvalidArgumentException;
@ -38,7 +37,7 @@ use Tuupola\Middleware\HttpBasicAuthentication;
* PHP version 5 * PHP version 5
* *
* @category Class * @category Class
* @package OpenAPIServer\Api * @package OpenAPIServer
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
@ -50,6 +49,21 @@ class SlimRouter
*/ */
private $slimApp; private $slimApp;
/** @var array[] list of all api operations */
private $operations = [
[
'httpMethod' => 'PUT',
'basePathWithoutHost' => '/ ' \" =end -- \\r\\n \\n \\r/v2 *_/ ' \" =end -- \\r\\n \\n \\r',
'path' => '/fake',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'testCodeInjectEndRnNR',
'authMethods' => [
],
],
];
/** /**
* Class constructor * Class constructor
* *
@ -58,7 +72,7 @@ class SlimRouter
*/ */
public function __construct($container = []) public function __construct($container = [])
{ {
$app = new App($container); $this->slimApp = new App($container);
$basicAuth = new HttpBasicAuthentication([ $basicAuth = new HttpBasicAuthentication([
"secure" => false, "secure" => false,
@ -69,12 +83,53 @@ class SlimRouter
} }
]); ]);
$app->PUT( foreach ($this->operations as $operation) {
'/ ' \" =end -- \\r\\n \\n \\r/v2 *_/ ' \" =end -- \\r\\n \\n \\r/fake', $callback = function ($request, $response, $arguments) use ($operation) {
FakeApi::class . ':testCodeInjectEndRnNR' $message = "How about extending {$operation['classname']} by {$operation['apiPackage']}\\{$operation['userClassname']} class implementing {$operation['operationId']} as a {$operation['httpMethod']} method?";
); throw new \Exception($message);
return $response->withStatus(501)->write($message);
};
$middlewares = [];
$this->slimApp = $app; if (class_exists("\\{$operation['apiPackage']}\\{$operation['userClassname']}")) {
$callback = "\\{$operation['apiPackage']}\\{$operation['userClassname']}:{$operation['operationId']}";
}
foreach ($operation['authMethods'] as $authMethod) {
if ($authMethod['type'] === 'http') {
$middlewares[] = $basicAuth;
}
}
$this->addRoute(
[$operation['httpMethod']],
"{$operation['basePathWithoutHost']}{$operation['path']}",
$callback,
$middlewares
)->setName($operation['operationId']);
}
}
/**
* Add route with multiple methods
*
* @param string[] $methods Numeric array of HTTP method names
* @param string $pattern The route URI pattern
* @param callable|string $callable The route callback routine
* @param array|null $middlewares List of middlewares
*
* @return Slim\Interfaces\RouteInterface
*
* @throws InvalidArgumentException if the route pattern isn't a string
*/
public function addRoute($methods, $pattern, $callable, $middlewares = [])
{
$route = $this->slimApp->map($methods, $pattern, $callable);
foreach ($middlewares as $middleware) {
$route->add($middleware);
}
return $route;
} }
/** /**

View File

@ -20,8 +20,8 @@
</testsuites> </testsuites>
<filter> <filter>
<whitelist processUncoveredFilesFromWhitelist="true"> <whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./lib//Api</directory> <directory suffix=".php">./lib/Api</directory>
<directory suffix=".php">./lib//Model</directory> <directory suffix=".php">./lib/Model</directory>
</whitelist> </whitelist>
</filter> </filter>
</phpunit> </phpunit>

View File

@ -36,7 +36,7 @@ use OpenAPIServer\Api\FakeApi;
* @package OpenAPIServer\Api * @package OpenAPIServer\Api
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \OpenAPIServer\Model\FakeApi * @coversDefaultClass \OpenAPIServer\Api\FakeApi
*/ */
class FakeApiTest extends TestCase class FakeApiTest extends TestCase
{ {

View File

@ -44,48 +44,77 @@ Command | Tool | Target
`$ composer run phpcs` | PHP CodeSniffer | All files `$ composer run phpcs` | PHP CodeSniffer | All files
`$ composer run phplint` | phplint | All files `$ composer run phplint` | phplint | All files
## Show errors
Change line in `./index.php`:
```diff
--- $router = new SlimRouter();
+++ $router = new SlimRouter(['settings' => ['displayErrorDetails' => true]]);
```
## API Endpoints ## API Endpoints
All URIs are relative to *http://petstore.swagger.io:80/v2* All URIs are relative to *http://petstore.swagger.io:80/v2*
> Important! Do not modify abstract API controllers directly! Instead extend them by implementation classes like:
```php
// src/Api/PetApi.php
namespace OpenAPIServer\Api;
use OpenAPIServer\Api\AbstractPetApi;
class PetApi extends AbstractPetApi
{
public function addPet($request, $response, $args)
{
// your implementation of addPet method here
}
}
```
Place all your implementation classes in `./src` folder accordingly.
For instance, when abstract class located at `./lib/Api/AbstractPetApi.php` you need to create implementation class at `./src/Api/PetApi.php`.
Class | Method | HTTP request | Description Class | Method | HTTP request | Description
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
*AnotherFakeApi* | **call123TestSpecialTags** | **PATCH** /another-fake/dummy | To test special tags *AbstractAnotherFakeApi* | **call123TestSpecialTags** | **PATCH** /another-fake/dummy | To test special tags
*FakeApi* | **fakeOuterBooleanSerialize** | **POST** /fake/outer/boolean | *AbstractFakeApi* | **fakeOuterBooleanSerialize** | **POST** /fake/outer/boolean |
*FakeApi* | **fakeOuterCompositeSerialize** | **POST** /fake/outer/composite | *AbstractFakeApi* | **fakeOuterCompositeSerialize** | **POST** /fake/outer/composite |
*FakeApi* | **fakeOuterNumberSerialize** | **POST** /fake/outer/number | *AbstractFakeApi* | **fakeOuterNumberSerialize** | **POST** /fake/outer/number |
*FakeApi* | **fakeOuterStringSerialize** | **POST** /fake/outer/string | *AbstractFakeApi* | **fakeOuterStringSerialize** | **POST** /fake/outer/string |
*FakeApi* | **testBodyWithFileSchema** | **PUT** /fake/body-with-file-schema | *AbstractFakeApi* | **testBodyWithFileSchema** | **PUT** /fake/body-with-file-schema |
*FakeApi* | **testBodyWithQueryParams** | **PUT** /fake/body-with-query-params | *AbstractFakeApi* | **testBodyWithQueryParams** | **PUT** /fake/body-with-query-params |
*FakeApi* | **testClientModel** | **PATCH** /fake | To test \"client\" model *AbstractFakeApi* | **testClientModel** | **PATCH** /fake | To test \"client\" model
*FakeApi* | **testEndpointParameters** | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 *AbstractFakeApi* | **testEndpointParameters** | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
*FakeApi* | **testEnumParameters** | **GET** /fake | To test enum parameters *AbstractFakeApi* | **testEnumParameters** | **GET** /fake | To test enum parameters
*FakeApi* | **testGroupParameters** | **DELETE** /fake | Fake endpoint to test group parameters (optional) *AbstractFakeApi* | **testGroupParameters** | **DELETE** /fake | Fake endpoint to test group parameters (optional)
*FakeApi* | **testInlineAdditionalProperties** | **POST** /fake/inline-additionalProperties | test inline additionalProperties *AbstractFakeApi* | **testInlineAdditionalProperties** | **POST** /fake/inline-additionalProperties | test inline additionalProperties
*FakeApi* | **testJsonFormData** | **GET** /fake/jsonFormData | test json serialization of form data *AbstractFakeApi* | **testJsonFormData** | **GET** /fake/jsonFormData | test json serialization of form data
*FakeClassnameTags123Api* | **testClassname** | **PATCH** /fake_classname_test | To test class name in snake case *AbstractFakeClassnameTags123Api* | **testClassname** | **PATCH** /fake_classname_test | To test class name in snake case
*PetApi* | **addPet** | **POST** /pet | Add a new pet to the store *AbstractPetApi* | **addPet** | **POST** /pet | Add a new pet to the store
*PetApi* | **findPetsByStatus** | **GET** /pet/findByStatus | Finds Pets by status *AbstractPetApi* | **findPetsByStatus** | **GET** /pet/findByStatus | Finds Pets by status
*PetApi* | **findPetsByTags** | **GET** /pet/findByTags | Finds Pets by tags *AbstractPetApi* | **findPetsByTags** | **GET** /pet/findByTags | Finds Pets by tags
*PetApi* | **updatePet** | **PUT** /pet | Update an existing pet *AbstractPetApi* | **updatePet** | **PUT** /pet | Update an existing pet
*PetApi* | **deletePet** | **DELETE** /pet/{petId} | Deletes a pet *AbstractPetApi* | **deletePet** | **DELETE** /pet/{petId} | Deletes a pet
*PetApi* | **getPetById** | **GET** /pet/{petId} | Find pet by ID *AbstractPetApi* | **getPetById** | **GET** /pet/{petId} | Find pet by ID
*PetApi* | **updatePetWithForm** | **POST** /pet/{petId} | Updates a pet in the store with form data *AbstractPetApi* | **updatePetWithForm** | **POST** /pet/{petId} | Updates a pet in the store with form data
*PetApi* | **uploadFile** | **POST** /pet/{petId}/uploadImage | uploads an image *AbstractPetApi* | **uploadFile** | **POST** /pet/{petId}/uploadImage | uploads an image
*PetApi* | **uploadFileWithRequiredFile** | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required) *AbstractPetApi* | **uploadFileWithRequiredFile** | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required)
*StoreApi* | **getInventory** | **GET** /store/inventory | Returns pet inventories by status *AbstractStoreApi* | **getInventory** | **GET** /store/inventory | Returns pet inventories by status
*StoreApi* | **placeOrder** | **POST** /store/order | Place an order for a pet *AbstractStoreApi* | **placeOrder** | **POST** /store/order | Place an order for a pet
*StoreApi* | **deleteOrder** | **DELETE** /store/order/{order_id} | Delete purchase order by ID *AbstractStoreApi* | **deleteOrder** | **DELETE** /store/order/{order_id} | Delete purchase order by ID
*StoreApi* | **getOrderById** | **GET** /store/order/{order_id} | Find purchase order by ID *AbstractStoreApi* | **getOrderById** | **GET** /store/order/{order_id} | Find purchase order by ID
*UserApi* | **createUser** | **POST** /user | Create user *AbstractUserApi* | **createUser** | **POST** /user | Create user
*UserApi* | **createUsersWithArrayInput** | **POST** /user/createWithArray | Creates list of users with given input array *AbstractUserApi* | **createUsersWithArrayInput** | **POST** /user/createWithArray | Creates list of users with given input array
*UserApi* | **createUsersWithListInput** | **POST** /user/createWithList | Creates list of users with given input array *AbstractUserApi* | **createUsersWithListInput** | **POST** /user/createWithList | Creates list of users with given input array
*UserApi* | **loginUser** | **GET** /user/login | Logs user into the system *AbstractUserApi* | **loginUser** | **GET** /user/login | Logs user into the system
*UserApi* | **logoutUser** | **GET** /user/logout | Logs out current logged in user session *AbstractUserApi* | **logoutUser** | **GET** /user/logout | Logs out current logged in user session
*UserApi* | **deleteUser** | **DELETE** /user/{username} | Delete user *AbstractUserApi* | **deleteUser** | **DELETE** /user/{username} | Delete user
*UserApi* | **getUserByName** | **GET** /user/{username} | Get user by user name *AbstractUserApi* | **getUserByName** | **GET** /user/{username} | Get user by user name
*UserApi* | **updateUser** | **PUT** /user/{username} | Updated user *AbstractUserApi* | **updateUser** | **PUT** /user/{username} | Updated user
## Models ## Models

View File

@ -11,7 +11,10 @@
"squizlabs/php_codesniffer": "^3.0" "squizlabs/php_codesniffer": "^3.0"
}, },
"autoload": { "autoload": {
"psr-4": { "OpenAPIServer\\": "lib/" } "psr-4": { "OpenAPIServer\\": [
"lib/",
"src/"
]}
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "OpenAPIServer\\": "test/" } "psr-4": { "OpenAPIServer\\": "test/" }

View File

@ -1,55 +0,0 @@
<?php
/**
* Abstract Api Controller
*
* PHP version 5
*
* @category Class
* @package OpenAPIServer
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
*/
/**
* OpenAPI Petstore
*
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
* OpenAPI spec version: 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
* Do not edit the class manually.
*/
namespace OpenAPIServer;
/**
* ApiServer Class Doc Comment
*
* PHP version 5
*
* @category Class
* @package OpenAPIServer
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
*/
abstract class AbstractApiController
{
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
}

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* AnotherFakeApi * AbstractAnotherFakeApi
* *
* PHP version 5 * PHP version 5
* *
@ -25,10 +25,8 @@
*/ */
namespace OpenAPIServer\Api; namespace OpenAPIServer\Api;
use OpenAPIServer\AbstractApiController;
/** /**
* AnotherFakeApi Class Doc Comment * AbstractAnotherFakeApi Class Doc Comment
* *
* PHP version 5 * PHP version 5
* *
@ -37,9 +35,25 @@ use OpenAPIServer\AbstractApiController;
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
class AnotherFakeApi extends AbstractApiController abstract class AbstractAnotherFakeApi
{ {
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
/** /**
* PATCH call123TestSpecialTags * PATCH call123TestSpecialTags
* Summary: To test special tags * Summary: To test special tags
@ -49,11 +63,15 @@ class AnotherFakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function call123TestSpecialTags($request, $response, $args) public function call123TestSpecialTags($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing call123TestSpecialTags as a PATCH method ?'); $message = "How about implementing call123TestSpecialTags as a PATCH method in OpenAPIServer\Api\AnotherFakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
} }

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* FakeApi * AbstractFakeApi
* *
* PHP version 5 * PHP version 5
* *
@ -25,10 +25,8 @@
*/ */
namespace OpenAPIServer\Api; namespace OpenAPIServer\Api;
use OpenAPIServer\AbstractApiController;
/** /**
* FakeApi Class Doc Comment * AbstractFakeApi Class Doc Comment
* *
* PHP version 5 * PHP version 5
* *
@ -37,9 +35,25 @@ use OpenAPIServer\AbstractApiController;
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
class FakeApi extends AbstractApiController abstract class AbstractFakeApi
{ {
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
/** /**
* POST fakeOuterBooleanSerialize * POST fakeOuterBooleanSerialize
* Notes: Test serialization of outer boolean types * Notes: Test serialization of outer boolean types
@ -48,12 +62,16 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function fakeOuterBooleanSerialize($request, $response, $args) public function fakeOuterBooleanSerialize($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing fakeOuterBooleanSerialize as a POST method ?'); $message = "How about implementing fakeOuterBooleanSerialize as a POST method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -64,12 +82,16 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function fakeOuterCompositeSerialize($request, $response, $args) public function fakeOuterCompositeSerialize($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing fakeOuterCompositeSerialize as a POST method ?'); $message = "How about implementing fakeOuterCompositeSerialize as a POST method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -80,12 +102,16 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function fakeOuterNumberSerialize($request, $response, $args) public function fakeOuterNumberSerialize($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing fakeOuterNumberSerialize as a POST method ?'); $message = "How about implementing fakeOuterNumberSerialize as a POST method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -96,12 +122,16 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function fakeOuterStringSerialize($request, $response, $args) public function fakeOuterStringSerialize($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing fakeOuterStringSerialize as a POST method ?'); $message = "How about implementing fakeOuterStringSerialize as a POST method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -111,12 +141,16 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testBodyWithFileSchema($request, $response, $args) public function testBodyWithFileSchema($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing testBodyWithFileSchema as a PUT method ?'); $message = "How about implementing testBodyWithFileSchema as a PUT method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -125,14 +159,18 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testBodyWithQueryParams($request, $response, $args) public function testBodyWithQueryParams($request, $response, $args)
{ {
$queryParams = $request->getQueryParams(); $queryParams = $request->getQueryParams();
$query = $request->getQueryParam('query'); $query = $request->getQueryParam('query');
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing testBodyWithQueryParams as a PUT method ?'); $message = "How about implementing testBodyWithQueryParams as a PUT method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -144,12 +182,16 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testClientModel($request, $response, $args) public function testClientModel($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing testClientModel as a PATCH method ?'); $message = "How about implementing testClientModel as a PATCH method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -160,6 +202,8 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testEndpointParameters($request, $response, $args) public function testEndpointParameters($request, $response, $args)
{ {
@ -177,8 +221,10 @@ class FakeApi extends AbstractApiController
$dateTime = $request->getParsedBodyParam('dateTime'); $dateTime = $request->getParsedBodyParam('dateTime');
$password = $request->getParsedBodyParam('password'); $password = $request->getParsedBodyParam('password');
$callback = $request->getParsedBodyParam('callback'); $callback = $request->getParsedBodyParam('callback');
$response->write('How about implementing testEndpointParameters as a POST method ?'); $message = "How about implementing testEndpointParameters as a POST method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -189,6 +235,8 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testEnumParameters($request, $response, $args) public function testEnumParameters($request, $response, $args)
{ {
@ -202,8 +250,10 @@ class FakeApi extends AbstractApiController
$enumQueryDouble = $request->getQueryParam('enum_query_double'); $enumQueryDouble = $request->getQueryParam('enum_query_double');
$enumFormStringArray = $request->getParsedBodyParam('enum_form_string_array'); $enumFormStringArray = $request->getParsedBodyParam('enum_form_string_array');
$enumFormString = $request->getParsedBodyParam('enum_form_string'); $enumFormString = $request->getParsedBodyParam('enum_form_string');
$response->write('How about implementing testEnumParameters as a GET method ?'); $message = "How about implementing testEnumParameters as a GET method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -214,6 +264,8 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testGroupParameters($request, $response, $args) public function testGroupParameters($request, $response, $args)
{ {
@ -225,8 +277,10 @@ class FakeApi extends AbstractApiController
$requiredInt64Group = $request->getQueryParam('required_int64_group'); $requiredInt64Group = $request->getQueryParam('required_int64_group');
$stringGroup = $request->getQueryParam('string_group'); $stringGroup = $request->getQueryParam('string_group');
$int64Group = $request->getQueryParam('int64_group'); $int64Group = $request->getQueryParam('int64_group');
$response->write('How about implementing testGroupParameters as a DELETE method ?'); $message = "How about implementing testGroupParameters as a DELETE method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -236,12 +290,16 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testInlineAdditionalProperties($request, $response, $args) public function testInlineAdditionalProperties($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing testInlineAdditionalProperties as a POST method ?'); $message = "How about implementing testInlineAdditionalProperties as a POST method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -251,12 +309,16 @@ class FakeApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testJsonFormData($request, $response, $args) public function testJsonFormData($request, $response, $args)
{ {
$param = $request->getParsedBodyParam('param'); $param = $request->getParsedBodyParam('param');
$param2 = $request->getParsedBodyParam('param2'); $param2 = $request->getParsedBodyParam('param2');
$response->write('How about implementing testJsonFormData as a GET method ?'); $message = "How about implementing testJsonFormData as a GET method in OpenAPIServer\Api\FakeApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
} }

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* FakeClassnameTags123Api * AbstractFakeClassnameTags123Api
* *
* PHP version 5 * PHP version 5
* *
@ -25,10 +25,8 @@
*/ */
namespace OpenAPIServer\Api; namespace OpenAPIServer\Api;
use OpenAPIServer\AbstractApiController;
/** /**
* FakeClassnameTags123Api Class Doc Comment * AbstractFakeClassnameTags123Api Class Doc Comment
* *
* PHP version 5 * PHP version 5
* *
@ -37,9 +35,25 @@ use OpenAPIServer\AbstractApiController;
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
class FakeClassnameTags123Api extends AbstractApiController abstract class AbstractFakeClassnameTags123Api
{ {
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
/** /**
* PATCH testClassname * PATCH testClassname
* Summary: To test class name in snake case * Summary: To test class name in snake case
@ -49,11 +63,15 @@ class FakeClassnameTags123Api extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function testClassname($request, $response, $args) public function testClassname($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing testClassname as a PATCH method ?'); $message = "How about implementing testClassname as a PATCH method in OpenAPIServer\Api\FakeClassnameTags123Api class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
} }

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* PetApi * AbstractPetApi
* *
* PHP version 5 * PHP version 5
* *
@ -25,10 +25,8 @@
*/ */
namespace OpenAPIServer\Api; namespace OpenAPIServer\Api;
use OpenAPIServer\AbstractApiController;
/** /**
* PetApi Class Doc Comment * AbstractPetApi Class Doc Comment
* *
* PHP version 5 * PHP version 5
* *
@ -37,9 +35,25 @@ use OpenAPIServer\AbstractApiController;
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
class PetApi extends AbstractApiController abstract class AbstractPetApi
{ {
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
/** /**
* POST addPet * POST addPet
* Summary: Add a new pet to the store * Summary: Add a new pet to the store
@ -47,12 +61,16 @@ class PetApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function addPet($request, $response, $args) public function addPet($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing addPet as a POST method ?'); $message = "How about implementing addPet as a POST method in OpenAPIServer\Api\PetApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -62,14 +80,18 @@ class PetApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function deletePet($request, $response, $args) public function deletePet($request, $response, $args)
{ {
$headers = $request->getHeaders(); $headers = $request->getHeaders();
$apiKey = $request->hasHeader('api_key') ? $headers['api_key'] : null; $apiKey = $request->hasHeader('api_key') ? $headers['api_key'] : null;
$petId = $args['petId']; $petId = $args['petId'];
$response->write('How about implementing deletePet as a DELETE method ?'); $message = "How about implementing deletePet as a DELETE method in OpenAPIServer\Api\PetApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -81,13 +103,17 @@ class PetApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function findPetsByStatus($request, $response, $args) public function findPetsByStatus($request, $response, $args)
{ {
$queryParams = $request->getQueryParams(); $queryParams = $request->getQueryParams();
$status = $request->getQueryParam('status'); $status = $request->getQueryParam('status');
$response->write('How about implementing findPetsByStatus as a GET method ?'); $message = "How about implementing findPetsByStatus as a GET method in OpenAPIServer\Api\PetApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -99,13 +125,17 @@ class PetApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function findPetsByTags($request, $response, $args) public function findPetsByTags($request, $response, $args)
{ {
$queryParams = $request->getQueryParams(); $queryParams = $request->getQueryParams();
$tags = $request->getQueryParam('tags'); $tags = $request->getQueryParam('tags');
$response->write('How about implementing findPetsByTags as a GET method ?'); $message = "How about implementing findPetsByTags as a GET method in OpenAPIServer\Api\PetApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -117,12 +147,16 @@ class PetApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function getPetById($request, $response, $args) public function getPetById($request, $response, $args)
{ {
$petId = $args['petId']; $petId = $args['petId'];
$response->write('How about implementing getPetById as a GET method ?'); $message = "How about implementing getPetById as a GET method in OpenAPIServer\Api\PetApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -132,12 +166,16 @@ class PetApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function updatePet($request, $response, $args) public function updatePet($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing updatePet as a PUT method ?'); $message = "How about implementing updatePet as a PUT method in OpenAPIServer\Api\PetApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -147,14 +185,18 @@ class PetApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function updatePetWithForm($request, $response, $args) public function updatePetWithForm($request, $response, $args)
{ {
$petId = $args['petId']; $petId = $args['petId'];
$name = $request->getParsedBodyParam('name'); $name = $request->getParsedBodyParam('name');
$status = $request->getParsedBodyParam('status'); $status = $request->getParsedBodyParam('status');
$response->write('How about implementing updatePetWithForm as a POST method ?'); $message = "How about implementing updatePetWithForm as a POST method in OpenAPIServer\Api\PetApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -165,14 +207,18 @@ class PetApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function uploadFile($request, $response, $args) public function uploadFile($request, $response, $args)
{ {
$petId = $args['petId']; $petId = $args['petId'];
$additionalMetadata = $request->getParsedBodyParam('additionalMetadata'); $additionalMetadata = $request->getParsedBodyParam('additionalMetadata');
$file = (key_exists('file', $request->getUploadedFiles())) ? $request->getUploadedFiles()['file'] : null; $file = (key_exists('file', $request->getUploadedFiles())) ? $request->getUploadedFiles()['file'] : null;
$response->write('How about implementing uploadFile as a POST method ?'); $message = "How about implementing uploadFile as a POST method in OpenAPIServer\Api\PetApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -183,13 +229,17 @@ class PetApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function uploadFileWithRequiredFile($request, $response, $args) public function uploadFileWithRequiredFile($request, $response, $args)
{ {
$petId = $args['petId']; $petId = $args['petId'];
$additionalMetadata = $request->getParsedBodyParam('additionalMetadata'); $additionalMetadata = $request->getParsedBodyParam('additionalMetadata');
$requiredFile = (key_exists('requiredFile', $request->getUploadedFiles())) ? $request->getUploadedFiles()['requiredFile'] : null; $requiredFile = (key_exists('requiredFile', $request->getUploadedFiles())) ? $request->getUploadedFiles()['requiredFile'] : null;
$response->write('How about implementing uploadFileWithRequiredFile as a POST method ?'); $message = "How about implementing uploadFileWithRequiredFile as a POST method in OpenAPIServer\Api\PetApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
} }

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* StoreApi * AbstractStoreApi
* *
* PHP version 5 * PHP version 5
* *
@ -25,10 +25,8 @@
*/ */
namespace OpenAPIServer\Api; namespace OpenAPIServer\Api;
use OpenAPIServer\AbstractApiController;
/** /**
* StoreApi Class Doc Comment * AbstractStoreApi Class Doc Comment
* *
* PHP version 5 * PHP version 5
* *
@ -37,9 +35,25 @@ use OpenAPIServer\AbstractApiController;
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
class StoreApi extends AbstractApiController abstract class AbstractStoreApi
{ {
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
/** /**
* DELETE deleteOrder * DELETE deleteOrder
* Summary: Delete purchase order by ID * Summary: Delete purchase order by ID
@ -48,12 +62,16 @@ class StoreApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function deleteOrder($request, $response, $args) public function deleteOrder($request, $response, $args)
{ {
$orderId = $args['order_id']; $orderId = $args['order_id'];
$response->write('How about implementing deleteOrder as a DELETE method ?'); $message = "How about implementing deleteOrder as a DELETE method in OpenAPIServer\Api\StoreApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -65,11 +83,15 @@ class StoreApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function getInventory($request, $response, $args) public function getInventory($request, $response, $args)
{ {
$response->write('How about implementing getInventory as a GET method ?'); $message = "How about implementing getInventory as a GET method in OpenAPIServer\Api\StoreApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -81,12 +103,16 @@ class StoreApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function getOrderById($request, $response, $args) public function getOrderById($request, $response, $args)
{ {
$orderId = $args['order_id']; $orderId = $args['order_id'];
$response->write('How about implementing getOrderById as a GET method ?'); $message = "How about implementing getOrderById as a GET method in OpenAPIServer\Api\StoreApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -97,11 +123,15 @@ class StoreApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function placeOrder($request, $response, $args) public function placeOrder($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing placeOrder as a POST method ?'); $message = "How about implementing placeOrder as a POST method in OpenAPIServer\Api\StoreApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
} }

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* UserApi * AbstractUserApi
* *
* PHP version 5 * PHP version 5
* *
@ -25,10 +25,8 @@
*/ */
namespace OpenAPIServer\Api; namespace OpenAPIServer\Api;
use OpenAPIServer\AbstractApiController;
/** /**
* UserApi Class Doc Comment * AbstractUserApi Class Doc Comment
* *
* PHP version 5 * PHP version 5
* *
@ -37,9 +35,25 @@ use OpenAPIServer\AbstractApiController;
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
class UserApi extends AbstractApiController abstract class AbstractUserApi
{ {
/**
* @var \Interop\Container\ContainerInterface Slim app container instance
*/
protected $container;
/**
* Route Controller constructor receives container
*
* @param \Interop\Container\ContainerInterface $container Slim app container instance
*/
public function __construct($container)
{
$this->container = $container;
}
/** /**
* POST createUser * POST createUser
* Summary: Create user * Summary: Create user
@ -48,12 +62,16 @@ class UserApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function createUser($request, $response, $args) public function createUser($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing createUser as a POST method ?'); $message = "How about implementing createUser as a POST method in OpenAPIServer\Api\UserApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -63,12 +81,16 @@ class UserApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function createUsersWithArrayInput($request, $response, $args) public function createUsersWithArrayInput($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing createUsersWithArrayInput as a POST method ?'); $message = "How about implementing createUsersWithArrayInput as a POST method in OpenAPIServer\Api\UserApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -78,12 +100,16 @@ class UserApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function createUsersWithListInput($request, $response, $args) public function createUsersWithListInput($request, $response, $args)
{ {
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing createUsersWithListInput as a POST method ?'); $message = "How about implementing createUsersWithListInput as a POST method in OpenAPIServer\Api\UserApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -94,12 +120,16 @@ class UserApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function deleteUser($request, $response, $args) public function deleteUser($request, $response, $args)
{ {
$username = $args['username']; $username = $args['username'];
$response->write('How about implementing deleteUser as a DELETE method ?'); $message = "How about implementing deleteUser as a DELETE method in OpenAPIServer\Api\UserApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -110,12 +140,16 @@ class UserApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function getUserByName($request, $response, $args) public function getUserByName($request, $response, $args)
{ {
$username = $args['username']; $username = $args['username'];
$response->write('How about implementing getUserByName as a GET method ?'); $message = "How about implementing getUserByName as a GET method in OpenAPIServer\Api\UserApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -126,14 +160,18 @@ class UserApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function loginUser($request, $response, $args) public function loginUser($request, $response, $args)
{ {
$queryParams = $request->getQueryParams(); $queryParams = $request->getQueryParams();
$username = $request->getQueryParam('username'); $username = $request->getQueryParam('username');
$password = $request->getQueryParam('password'); $password = $request->getQueryParam('password');
$response->write('How about implementing loginUser as a GET method ?'); $message = "How about implementing loginUser as a GET method in OpenAPIServer\Api\UserApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -143,11 +181,15 @@ class UserApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function logoutUser($request, $response, $args) public function logoutUser($request, $response, $args)
{ {
$response->write('How about implementing logoutUser as a GET method ?'); $message = "How about implementing logoutUser as a GET method in OpenAPIServer\Api\UserApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
/** /**
@ -158,12 +200,16 @@ class UserApi extends AbstractApiController
* @param \Psr\Http\Message\ServerRequestInterface $request Request * @param \Psr\Http\Message\ServerRequestInterface $request Request
* @param \Psr\Http\Message\ResponseInterface $response Response * @param \Psr\Http\Message\ResponseInterface $response Response
* @param array|null $args Path arguments * @param array|null $args Path arguments
*
* @return \Psr\Http\Message\ResponseInterface
*/ */
public function updateUser($request, $response, $args) public function updateUser($request, $response, $args)
{ {
$username = $args['username']; $username = $args['username'];
$body = $request->getParsedBody(); $body = $request->getParsedBody();
$response->write('How about implementing updateUser as a PUT method ?'); $message = "How about implementing updateUser as a PUT method in OpenAPIServer\Api\UserApi class?";
return $response; throw new \Exception($message);
return $response->write($message)->withStatus(501);
} }
} }

View File

@ -1,12 +0,0 @@
<?php
/**
* AnimalFarm
*/
namespace OpenAPIServer\Model;
/**
* AnimalFarm
*/
class AnimalFarm
{
}

View File

@ -1,12 +0,0 @@
<?php
/**
* StringBooleanMap
*/
namespace OpenAPIServer\Model;
/**
* StringBooleanMap
*/
class StringBooleanMap
{
}

View File

@ -25,12 +25,6 @@
*/ */
namespace OpenAPIServer; namespace OpenAPIServer;
use OpenAPIServer\Api\AnotherFakeApi;
use OpenAPIServer\Api\FakeApi;
use OpenAPIServer\Api\FakeClassnameTags123Api;
use OpenAPIServer\Api\PetApi;
use OpenAPIServer\Api\StoreApi;
use OpenAPIServer\Api\UserApi;
use Slim\App; use Slim\App;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use InvalidArgumentException; use InvalidArgumentException;
@ -42,7 +36,7 @@ use Tuupola\Middleware\HttpBasicAuthentication;
* PHP version 5 * PHP version 5
* *
* @category Class * @category Class
* @package OpenAPIServer\Api * @package OpenAPIServer
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
*/ */
@ -54,6 +48,399 @@ class SlimRouter
*/ */
private $slimApp; private $slimApp;
/** @var array[] list of all api operations */
private $operations = [
[
'httpMethod' => 'PATCH',
'basePathWithoutHost' => '/v2',
'path' => '/another-fake/dummy',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractAnotherFakeApi',
'userClassname' => 'AnotherFakeApi',
'operationId' => 'call123TestSpecialTags',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/fake/outer/boolean',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'fakeOuterBooleanSerialize',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/fake/outer/composite',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'fakeOuterCompositeSerialize',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/fake/outer/number',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'fakeOuterNumberSerialize',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/fake/outer/string',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'fakeOuterStringSerialize',
'authMethods' => [
],
],
[
'httpMethod' => 'PUT',
'basePathWithoutHost' => '/v2',
'path' => '/fake/body-with-file-schema',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'testBodyWithFileSchema',
'authMethods' => [
],
],
[
'httpMethod' => 'PUT',
'basePathWithoutHost' => '/v2',
'path' => '/fake/body-with-query-params',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'testBodyWithQueryParams',
'authMethods' => [
],
],
[
'httpMethod' => 'PATCH',
'basePathWithoutHost' => '/v2',
'path' => '/fake',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'testClientModel',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/fake',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'testEndpointParameters',
'authMethods' => [
[
'type' => 'http',
'isBasic' => true,
],
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/fake',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'testEnumParameters',
'authMethods' => [
],
],
[
'httpMethod' => 'DELETE',
'basePathWithoutHost' => '/v2',
'path' => '/fake',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'testGroupParameters',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/fake/inline-additionalProperties',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'testInlineAdditionalProperties',
'authMethods' => [
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/fake/jsonFormData',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeApi',
'userClassname' => 'FakeApi',
'operationId' => 'testJsonFormData',
'authMethods' => [
],
],
[
'httpMethod' => 'PATCH',
'basePathWithoutHost' => '/v2',
'path' => '/fake_classname_test',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractFakeClassnameTags123Api',
'userClassname' => 'FakeClassnameTags123Api',
'operationId' => 'testClassname',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/pet',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractPetApi',
'userClassname' => 'PetApi',
'operationId' => 'addPet',
'authMethods' => [
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/pet/findByStatus',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractPetApi',
'userClassname' => 'PetApi',
'operationId' => 'findPetsByStatus',
'authMethods' => [
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/pet/findByTags',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractPetApi',
'userClassname' => 'PetApi',
'operationId' => 'findPetsByTags',
'authMethods' => [
],
],
[
'httpMethod' => 'PUT',
'basePathWithoutHost' => '/v2',
'path' => '/pet',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractPetApi',
'userClassname' => 'PetApi',
'operationId' => 'updatePet',
'authMethods' => [
],
],
[
'httpMethod' => 'DELETE',
'basePathWithoutHost' => '/v2',
'path' => '/pet/{petId}',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractPetApi',
'userClassname' => 'PetApi',
'operationId' => 'deletePet',
'authMethods' => [
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/pet/{petId}',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractPetApi',
'userClassname' => 'PetApi',
'operationId' => 'getPetById',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/pet/{petId}',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractPetApi',
'userClassname' => 'PetApi',
'operationId' => 'updatePetWithForm',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/pet/{petId}/uploadImage',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractPetApi',
'userClassname' => 'PetApi',
'operationId' => 'uploadFile',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/fake/{petId}/uploadImageWithRequiredFile',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractPetApi',
'userClassname' => 'PetApi',
'operationId' => 'uploadFileWithRequiredFile',
'authMethods' => [
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/store/inventory',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractStoreApi',
'userClassname' => 'StoreApi',
'operationId' => 'getInventory',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/store/order',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractStoreApi',
'userClassname' => 'StoreApi',
'operationId' => 'placeOrder',
'authMethods' => [
],
],
[
'httpMethod' => 'DELETE',
'basePathWithoutHost' => '/v2',
'path' => '/store/order/{order_id}',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractStoreApi',
'userClassname' => 'StoreApi',
'operationId' => 'deleteOrder',
'authMethods' => [
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/store/order/{order_id}',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractStoreApi',
'userClassname' => 'StoreApi',
'operationId' => 'getOrderById',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/user',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractUserApi',
'userClassname' => 'UserApi',
'operationId' => 'createUser',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/user/createWithArray',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractUserApi',
'userClassname' => 'UserApi',
'operationId' => 'createUsersWithArrayInput',
'authMethods' => [
],
],
[
'httpMethod' => 'POST',
'basePathWithoutHost' => '/v2',
'path' => '/user/createWithList',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractUserApi',
'userClassname' => 'UserApi',
'operationId' => 'createUsersWithListInput',
'authMethods' => [
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/user/login',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractUserApi',
'userClassname' => 'UserApi',
'operationId' => 'loginUser',
'authMethods' => [
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/user/logout',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractUserApi',
'userClassname' => 'UserApi',
'operationId' => 'logoutUser',
'authMethods' => [
],
],
[
'httpMethod' => 'DELETE',
'basePathWithoutHost' => '/v2',
'path' => '/user/{username}',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractUserApi',
'userClassname' => 'UserApi',
'operationId' => 'deleteUser',
'authMethods' => [
],
],
[
'httpMethod' => 'GET',
'basePathWithoutHost' => '/v2',
'path' => '/user/{username}',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractUserApi',
'userClassname' => 'UserApi',
'operationId' => 'getUserByName',
'authMethods' => [
],
],
[
'httpMethod' => 'PUT',
'basePathWithoutHost' => '/v2',
'path' => '/user/{username}',
'apiPackage' => 'OpenAPIServer\Api',
'classname' => 'AbstractUserApi',
'userClassname' => 'UserApi',
'operationId' => 'updateUser',
'authMethods' => [
],
],
];
/** /**
* Class constructor * Class constructor
* *
@ -62,7 +449,7 @@ class SlimRouter
*/ */
public function __construct($container = []) public function __construct($container = [])
{ {
$app = new App($container); $this->slimApp = new App($container);
$basicAuth = new HttpBasicAuthentication([ $basicAuth = new HttpBasicAuthentication([
"secure" => false, "secure" => false,
@ -73,150 +460,53 @@ class SlimRouter
} }
]); ]);
$app->PATCH( foreach ($this->operations as $operation) {
'/v2/another-fake/dummy', $callback = function ($request, $response, $arguments) use ($operation) {
AnotherFakeApi::class . ':call123TestSpecialTags' $message = "How about extending {$operation['classname']} by {$operation['apiPackage']}\\{$operation['userClassname']} class implementing {$operation['operationId']} as a {$operation['httpMethod']} method?";
); throw new \Exception($message);
$app->POST( return $response->withStatus(501)->write($message);
'/v2/fake/outer/boolean', };
FakeApi::class . ':fakeOuterBooleanSerialize' $middlewares = [];
);
$app->POST(
'/v2/fake/outer/composite',
FakeApi::class . ':fakeOuterCompositeSerialize'
);
$app->POST(
'/v2/fake/outer/number',
FakeApi::class . ':fakeOuterNumberSerialize'
);
$app->POST(
'/v2/fake/outer/string',
FakeApi::class . ':fakeOuterStringSerialize'
);
$app->PUT(
'/v2/fake/body-with-file-schema',
FakeApi::class . ':testBodyWithFileSchema'
);
$app->PUT(
'/v2/fake/body-with-query-params',
FakeApi::class . ':testBodyWithQueryParams'
);
$app->PATCH(
'/v2/fake',
FakeApi::class . ':testClientModel'
);
$app->POST(
'/v2/fake',
FakeApi::class . ':testEndpointParameters'
)->add(
$basicAuth
);
$app->GET(
'/v2/fake',
FakeApi::class . ':testEnumParameters'
);
$app->DELETE(
'/v2/fake',
FakeApi::class . ':testGroupParameters'
);
$app->POST(
'/v2/fake/inline-additionalProperties',
FakeApi::class . ':testInlineAdditionalProperties'
);
$app->GET(
'/v2/fake/jsonFormData',
FakeApi::class . ':testJsonFormData'
);
$app->PATCH(
'/v2/fake_classname_test',
FakeClassnameTags123Api::class . ':testClassname'
);
$app->POST(
'/v2/pet',
PetApi::class . ':addPet'
);
$app->GET(
'/v2/pet/findByStatus',
PetApi::class . ':findPetsByStatus'
);
$app->GET(
'/v2/pet/findByTags',
PetApi::class . ':findPetsByTags'
);
$app->PUT(
'/v2/pet',
PetApi::class . ':updatePet'
);
$app->DELETE(
'/v2/pet/{petId}',
PetApi::class . ':deletePet'
);
$app->GET(
'/v2/pet/{petId}',
PetApi::class . ':getPetById'
);
$app->POST(
'/v2/pet/{petId}',
PetApi::class . ':updatePetWithForm'
);
$app->POST(
'/v2/pet/{petId}/uploadImage',
PetApi::class . ':uploadFile'
);
$app->POST(
'/v2/fake/{petId}/uploadImageWithRequiredFile',
PetApi::class . ':uploadFileWithRequiredFile'
);
$app->GET(
'/v2/store/inventory',
StoreApi::class . ':getInventory'
);
$app->POST(
'/v2/store/order',
StoreApi::class . ':placeOrder'
);
$app->DELETE(
'/v2/store/order/{order_id}',
StoreApi::class . ':deleteOrder'
);
$app->GET(
'/v2/store/order/{order_id}',
StoreApi::class . ':getOrderById'
);
$app->POST(
'/v2/user',
UserApi::class . ':createUser'
);
$app->POST(
'/v2/user/createWithArray',
UserApi::class . ':createUsersWithArrayInput'
);
$app->POST(
'/v2/user/createWithList',
UserApi::class . ':createUsersWithListInput'
);
$app->GET(
'/v2/user/login',
UserApi::class . ':loginUser'
);
$app->GET(
'/v2/user/logout',
UserApi::class . ':logoutUser'
);
$app->DELETE(
'/v2/user/{username}',
UserApi::class . ':deleteUser'
);
$app->GET(
'/v2/user/{username}',
UserApi::class . ':getUserByName'
);
$app->PUT(
'/v2/user/{username}',
UserApi::class . ':updateUser'
);
$this->slimApp = $app; if (class_exists("\\{$operation['apiPackage']}\\{$operation['userClassname']}")) {
$callback = "\\{$operation['apiPackage']}\\{$operation['userClassname']}:{$operation['operationId']}";
}
foreach ($operation['authMethods'] as $authMethod) {
if ($authMethod['type'] === 'http') {
$middlewares[] = $basicAuth;
}
}
$this->addRoute(
[$operation['httpMethod']],
"{$operation['basePathWithoutHost']}{$operation['path']}",
$callback,
$middlewares
)->setName($operation['operationId']);
}
}
/**
* Add route with multiple methods
*
* @param string[] $methods Numeric array of HTTP method names
* @param string $pattern The route URI pattern
* @param callable|string $callable The route callback routine
* @param array|null $middlewares List of middlewares
*
* @return Slim\Interfaces\RouteInterface
*
* @throws InvalidArgumentException if the route pattern isn't a string
*/
public function addRoute($methods, $pattern, $callable, $middlewares = [])
{
$route = $this->slimApp->map($methods, $pattern, $callable);
foreach ($middlewares as $middleware) {
$route->add($middleware);
}
return $route;
} }
/** /**

View File

@ -35,7 +35,7 @@ use OpenAPIServer\Api\AnotherFakeApi;
* @package OpenAPIServer\Api * @package OpenAPIServer\Api
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \OpenAPIServer\Model\AnotherFakeApi * @coversDefaultClass \OpenAPIServer\Api\AnotherFakeApi
*/ */
class AnotherFakeApiTest extends TestCase class AnotherFakeApiTest extends TestCase
{ {

View File

@ -35,7 +35,7 @@ use OpenAPIServer\Api\FakeApi;
* @package OpenAPIServer\Api * @package OpenAPIServer\Api
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \OpenAPIServer\Model\FakeApi * @coversDefaultClass \OpenAPIServer\Api\FakeApi
*/ */
class FakeApiTest extends TestCase class FakeApiTest extends TestCase
{ {
@ -158,6 +158,16 @@ class FakeApiTest extends TestCase
{ {
} }
/**
* Test case for testGroupParameters
*
* Fake endpoint to test group parameters (optional).
* @covers ::testGroupParameters
*/
public function testTestGroupParameters()
{
}
/** /**
* Test case for testInlineAdditionalProperties * Test case for testInlineAdditionalProperties
* *

View File

@ -35,7 +35,7 @@ use OpenAPIServer\Api\FakeClassnameTags123Api;
* @package OpenAPIServer\Api * @package OpenAPIServer\Api
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \OpenAPIServer\Model\FakeClassnameTags123Api * @coversDefaultClass \OpenAPIServer\Api\FakeClassnameTags123Api
*/ */
class FakeClassnameTags123ApiTest extends TestCase class FakeClassnameTags123ApiTest extends TestCase
{ {

View File

@ -35,7 +35,7 @@ use OpenAPIServer\Api\PetApi;
* @package OpenAPIServer\Api * @package OpenAPIServer\Api
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \OpenAPIServer\Model\PetApi * @coversDefaultClass \OpenAPIServer\Api\PetApi
*/ */
class PetApiTest extends TestCase class PetApiTest extends TestCase
{ {

View File

@ -35,7 +35,7 @@ use OpenAPIServer\Api\StoreApi;
* @package OpenAPIServer\Api * @package OpenAPIServer\Api
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \OpenAPIServer\Model\StoreApi * @coversDefaultClass \OpenAPIServer\Api\StoreApi
*/ */
class StoreApiTest extends TestCase class StoreApiTest extends TestCase
{ {

View File

@ -35,7 +35,7 @@ use OpenAPIServer\Api\UserApi;
* @package OpenAPIServer\Api * @package OpenAPIServer\Api
* @author OpenAPI Generator team * @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator * @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \OpenAPIServer\Model\UserApi * @coversDefaultClass \OpenAPIServer\Api\UserApi
*/ */
class UserApiTest extends TestCase class UserApiTest extends TestCase
{ {

View File

@ -1,78 +0,0 @@
<?php
/**
* AnimalFarmTest
* PHP version 5
*
* @category Class
* @package OpenAPIServer\Model
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
*/
/**
* OpenAPI Petstore
*
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
* OpenAPI spec version: 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
* Please update the test case below to test the model.
*/
namespace OpenAPIServer\Model;
use PHPUnit\Framework\TestCase;
use OpenAPIServer\Model\AnimalFarm;
/**
* AnimalFarmTest Class Doc Comment
*
* @category Class
* @description AnimalFarm
* @package OpenAPIServer\Model
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \OpenAPIServer\Model\AnimalFarm
*/
class AnimalFarmTest extends TestCase
{
/**
* Setup before running any test cases
*/
public static function setUpBeforeClass()
{
}
/**
* Setup before running each test case
*/
public function setUp()
{
}
/**
* Clean up after running each test case
*/
public function tearDown()
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass()
{
}
/**
* Test "AnimalFarm"
*/
public function testAnimalFarm()
{
$testAnimalFarm = new AnimalFarm();
}
}

View File

@ -1,78 +0,0 @@
<?php
/**
* StringBooleanMapTest
* PHP version 5
*
* @category Class
* @package OpenAPIServer\Model
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
*/
/**
* OpenAPI Petstore
*
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
* OpenAPI spec version: 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
* Please update the test case below to test the model.
*/
namespace OpenAPIServer\Model;
use PHPUnit\Framework\TestCase;
use OpenAPIServer\Model\StringBooleanMap;
/**
* StringBooleanMapTest Class Doc Comment
*
* @category Class
* @description StringBooleanMap
* @package OpenAPIServer\Model
* @author OpenAPI Generator team
* @link https://github.com/openapitools/openapi-generator
* @coversDefaultClass \OpenAPIServer\Model\StringBooleanMap
*/
class StringBooleanMapTest extends TestCase
{
/**
* Setup before running any test cases
*/
public static function setUpBeforeClass()
{
}
/**
* Setup before running each test case
*/
public function setUp()
{
}
/**
* Clean up after running each test case
*/
public function tearDown()
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass()
{
}
/**
* Test "StringBooleanMap"
*/
public function testStringBooleanMap()
{
$testStringBooleanMap = new StringBooleanMap();
}
}