mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-12-11 18:02:44 +00:00
[Php] Exclude query params when they're not required (#12120)
* exclude query params when they are not required * fix check on empty * update samples * fix * add tests * update test * Fix style I guess PHPCodeSniffer would find PSR12 violated but we use CS-Fixer instead. Anyway, conditions should contain spaces between logical operators for readability. * Apply CS-Fixer changes to templates * Refresh samples * Add required param to docblock Co-authored-by: Yuriy Belenko <yura-bely@mail.ru>
This commit is contained in:
@@ -29,8 +29,8 @@ namespace OpenAPI\Client\Api;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Exception\ConnectException;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Psr7\MultipartStream;
|
||||
use GuzzleHttp\Psr7\Request;
|
||||
use GuzzleHttp\RequestOptions;
|
||||
|
||||
@@ -29,8 +29,8 @@ namespace OpenAPI\Client\Api;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Exception\ConnectException;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Psr7\MultipartStream;
|
||||
use GuzzleHttp\Psr7\Request;
|
||||
use GuzzleHttp\RequestOptions;
|
||||
|
||||
@@ -29,8 +29,8 @@ namespace OpenAPI\Client\Api;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Exception\ConnectException;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Psr7\MultipartStream;
|
||||
use GuzzleHttp\Psr7\Request;
|
||||
use GuzzleHttp\RequestOptions;
|
||||
@@ -549,7 +549,8 @@ class FakeApi
|
||||
'query_1', // param base name
|
||||
'string', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
false // required
|
||||
) ?? []);
|
||||
|
||||
// header params
|
||||
@@ -2546,7 +2547,8 @@ class FakeApi
|
||||
'query', // param base name
|
||||
'string', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
|
||||
|
||||
@@ -3506,7 +3508,8 @@ class FakeApi
|
||||
'enum_query_string_array', // param base name
|
||||
'array', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
false // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -3514,7 +3517,8 @@ class FakeApi
|
||||
'enum_query_string', // param base name
|
||||
'string', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
false // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -3522,7 +3526,8 @@ class FakeApi
|
||||
'enum_query_integer', // param base name
|
||||
'integer', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
false // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -3530,7 +3535,8 @@ class FakeApi
|
||||
'enum_query_double', // param base name
|
||||
'number', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
false // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -3538,7 +3544,8 @@ class FakeApi
|
||||
'enum_query_model_array', // param base name
|
||||
'array', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
false // required
|
||||
) ?? []);
|
||||
|
||||
// header params
|
||||
@@ -3838,7 +3845,8 @@ class FakeApi
|
||||
'required_string_group', // param base name
|
||||
'integer', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -3846,7 +3854,8 @@ class FakeApi
|
||||
'required_int64_group', // param base name
|
||||
'integer', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -3854,7 +3863,8 @@ class FakeApi
|
||||
'string_group', // param base name
|
||||
'integer', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
false // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -3862,7 +3872,8 @@ class FakeApi
|
||||
'int64_group', // param base name
|
||||
'integer', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
false // required
|
||||
) ?? []);
|
||||
|
||||
// header params
|
||||
@@ -4613,7 +4624,8 @@ class FakeApi
|
||||
'pipe', // param base name
|
||||
'array', // openApiType
|
||||
'pipeDelimited', // style
|
||||
false // explode
|
||||
false, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -4621,7 +4633,8 @@ class FakeApi
|
||||
'ioutil', // param base name
|
||||
'array', // openApiType
|
||||
'form', // style
|
||||
false // explode
|
||||
false, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -4629,7 +4642,8 @@ class FakeApi
|
||||
'http', // param base name
|
||||
'array', // openApiType
|
||||
'spaceDelimited', // style
|
||||
false // explode
|
||||
false, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -4637,7 +4651,8 @@ class FakeApi
|
||||
'url', // param base name
|
||||
'array', // openApiType
|
||||
'form', // style
|
||||
false // explode
|
||||
false, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -4645,7 +4660,8 @@ class FakeApi
|
||||
'context', // param base name
|
||||
'array', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -4653,7 +4669,8 @@ class FakeApi
|
||||
'language', // param base name
|
||||
'object', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
false // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -4661,7 +4678,8 @@ class FakeApi
|
||||
'allowEmpty', // param base name
|
||||
'string', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ namespace OpenAPI\Client\Api;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Exception\ConnectException;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Psr7\MultipartStream;
|
||||
use GuzzleHttp\Psr7\Request;
|
||||
use GuzzleHttp\RequestOptions;
|
||||
|
||||
@@ -29,8 +29,8 @@ namespace OpenAPI\Client\Api;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Exception\ConnectException;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Psr7\MultipartStream;
|
||||
use GuzzleHttp\Psr7\Request;
|
||||
use GuzzleHttp\RequestOptions;
|
||||
@@ -825,7 +825,8 @@ class PetApi
|
||||
'status', // param base name
|
||||
'array', // openApiType
|
||||
'form', // style
|
||||
false // explode
|
||||
false, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
|
||||
|
||||
@@ -1115,7 +1116,8 @@ class PetApi
|
||||
'tags', // param base name
|
||||
'array', // openApiType
|
||||
'form', // style
|
||||
false // explode
|
||||
false, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ namespace OpenAPI\Client\Api;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Exception\ConnectException;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Psr7\MultipartStream;
|
||||
use GuzzleHttp\Psr7\Request;
|
||||
use GuzzleHttp\RequestOptions;
|
||||
|
||||
@@ -29,8 +29,8 @@ namespace OpenAPI\Client\Api;
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\ClientInterface;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Exception\ConnectException;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
use GuzzleHttp\Psr7\MultipartStream;
|
||||
use GuzzleHttp\Psr7\Request;
|
||||
use GuzzleHttp\RequestOptions;
|
||||
@@ -1521,7 +1521,8 @@ class UserApi
|
||||
'username', // param base name
|
||||
'string', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
// query params
|
||||
$queryParams = array_merge($queryParams, ObjectSerializer::toQueryValue(
|
||||
@@ -1529,7 +1530,8 @@ class UserApi
|
||||
'password', // param base name
|
||||
'string', // openApiType
|
||||
'form', // style
|
||||
true // explode
|
||||
true, // explode
|
||||
true // required
|
||||
) ?? []);
|
||||
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
|
||||
namespace OpenAPI\Client;
|
||||
|
||||
use OpenAPI\Client\Model\ModelInterface;
|
||||
use GuzzleHttp\Psr7\Utils;
|
||||
use OpenAPI\Client\Model\ModelInterface;
|
||||
|
||||
/**
|
||||
* ObjectSerializer Class Doc Comment
|
||||
@@ -166,6 +166,7 @@ class ObjectSerializer
|
||||
* @param string $openApiType OpenAPIType eg. array or object
|
||||
* @param string $style Parameter serialization style
|
||||
* @param bool $explode Parameter explode option
|
||||
* @param bool $required Whether query param is required or not
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
@@ -174,10 +175,19 @@ class ObjectSerializer
|
||||
string $paramName,
|
||||
string $openApiType = 'string',
|
||||
string $style = 'form',
|
||||
bool $explode = true
|
||||
bool $explode = true,
|
||||
bool $required = true
|
||||
): array {
|
||||
// return empty string
|
||||
if (empty($value)) return ["{$paramName}" => ''];
|
||||
if (
|
||||
empty($value)
|
||||
&& ($value !== false || $openApiType !== 'boolean') // if $value === false and $openApiType ==='boolean' it isn't empty
|
||||
) {
|
||||
if ($required) {
|
||||
return ["{$paramName}" => ''];
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
$query = [];
|
||||
$value = (in_array($openApiType, ['object', 'array'], true)) ? (array)$value : $value;
|
||||
@@ -359,7 +369,7 @@ class ObjectSerializer
|
||||
if ($class === 'object') {
|
||||
settype($data, 'array');
|
||||
return $data;
|
||||
} else if ($class === 'mixed') {
|
||||
} elseif ($class === 'mixed') {
|
||||
settype($data, gettype($data));
|
||||
return $data;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user