我正在使用Swagger for Documentation。 从注释生成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
方法吗?或者还有另一种方法来实现我的目标吗?
答案 0 :(得分: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']
]
]
希望这可以帮助有人遇到麻烦。