Handle JSON rules as objects instead of strings to allow nested map attributes
This commit is contained in:
parent
baba4ac891
commit
b32fa16a68
4 changed files with 19 additions and 18 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -453,10 +453,14 @@ class OpenAPI3 extends Format
|
|||
|
||||
switch ($rule['type']) {
|
||||
case 'string':
|
||||
case 'json':
|
||||
$type = 'string';
|
||||
break;
|
||||
|
||||
case 'json':
|
||||
$type = 'object';
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name]['additionalProperties'] = true;
|
||||
break;
|
||||
|
||||
case 'integer':
|
||||
$type = 'integer';
|
||||
$format = 'int32';
|
||||
|
@ -516,9 +520,6 @@ class OpenAPI3 extends Format
|
|||
$output['components']['schemas'][$model->getType()]['properties'][$name]['items']['format'] = $format;
|
||||
}
|
||||
|
||||
if($items) {
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name]['items'] = $items;
|
||||
}
|
||||
} else {
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name] = [
|
||||
'type' => $type,
|
||||
|
@ -530,9 +531,9 @@ class OpenAPI3 extends Format
|
|||
$output['components']['schemas'][$model->getType()]['properties'][$name]['format'] = $format;
|
||||
}
|
||||
|
||||
if($items) {
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name]['items'] = $items;
|
||||
}
|
||||
}
|
||||
if($items) {
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name]['items'] = $items;
|
||||
}
|
||||
if (!in_array($name, $required)) {
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name]['nullable'] = true;
|
||||
|
|
|
@ -444,10 +444,14 @@ class Swagger2 extends Format
|
|||
|
||||
switch ($rule['type']) {
|
||||
case 'string':
|
||||
case 'json':
|
||||
$type = 'string';
|
||||
break;
|
||||
|
||||
case 'json':
|
||||
$type = 'object';
|
||||
$output['definitions'][$model->getType()]['properties'][$name]['additionalProperties'] = true;
|
||||
break;
|
||||
|
||||
case 'integer':
|
||||
$type = 'integer';
|
||||
$format = 'int32';
|
||||
|
@ -469,7 +473,7 @@ class Swagger2 extends Format
|
|||
|
||||
default:
|
||||
$type = 'object';
|
||||
$rule['type'] = ($rule['type']) ? $rule['type'] : 'none';
|
||||
$rule['type'] = ($rule['type']) ?: 'none';
|
||||
|
||||
if(\is_array($rule['type'])) {
|
||||
if($rule['array']) {
|
||||
|
@ -508,14 +512,10 @@ class Swagger2 extends Format
|
|||
$output['definitions'][$model->getType()]['properties'][$name]['items']['format'] = $format;
|
||||
}
|
||||
|
||||
if($items) {
|
||||
$output['definitions'][$model->getType()]['properties'][$name]['items'] = $items;
|
||||
}
|
||||
} else {
|
||||
$output['definitions'][$model->getType()]['properties'][$name] = [
|
||||
'type' => $type,
|
||||
'description' => $rule['description'] ?? '',
|
||||
//'default' => $rule['default'] ?? null,
|
||||
'x-example' => $rule['example'] ?? null,
|
||||
];
|
||||
|
||||
|
@ -523,9 +523,9 @@ class Swagger2 extends Format
|
|||
$output['definitions'][$model->getType()]['properties'][$name]['format'] = $format;
|
||||
}
|
||||
|
||||
if($items) {
|
||||
$output['definitions'][$model->getType()]['properties'][$name]['items'] = $items;
|
||||
}
|
||||
}
|
||||
if($items) {
|
||||
$output['definitions'][$model->getType()]['properties'][$name]['items'] = $items;
|
||||
}
|
||||
if (!in_array($name, $required)) {
|
||||
$output['definitions'][$model->getType()]['properties'][$name]['x-nullable'] = true;
|
||||
|
|
Loading…
Reference in a new issue