Джонс — Swagger-как добавить пути программно?

Я использую Swagger для документации.
Генерация файла JSON из аннотации прекрасно работает.
Далее, я хочу добавить еще несколько путей к сгенерированному файлу json программно.

Я обнаружил, что класс Swagger имеет метод слияния, поэтому я попытался десериализовать мою строку json и слиться с объектом Swagger, как показано ниже, но безуспешно.

$swagger = \Swagger\scan($appDir);
$jsonString = json_encode([
"path" => [
"path" => "/api/task/{taskName}",
"parameter" => [
"ref" => "#/parameters/taskName"]
],
]);
$objectToMerge = (new Serializer())->deserialize($jsonString, 'Swagger\Annotations\Path');
$swagger->merge($object);

Я не знаю, что делаю правильно. Кто-нибудь использовал Swagger merge метод или mergeProperties метод? Или есть другой способ достичь моей цели?

1

Решение

Хорошо, я понял проблему.

Проблема заключалась в том, что строка json, которую я поместил в метод десериализации в качестве первого параметра, была неправильной.

Формирование строки json не является спецификацией OpenAPI. Я думаю, что эта формация используется в Swagger-php для внутренних целей.

Вот правильное формирование JSON, которое работает.

[
"path" => "/api/task/{taskName}",
"post" => [
"path" => "/api/task/{taskName}",
"tags" => ['test'],
"summary" => "summary test",
"description" => "description test",
"produces" => ['application/json']
]
]

Надеюсь, что это поможет кому-то в беде.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector