我正在使用Swagger编写文档。从注解生成json文件效果很好。此外,我希望以编程方式向生成的json文件添加更多路径。
我发现Swagger类有merge方法,所以我尝试反序列化我的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方法?或者有其他方法来实现我的目标?
发布于 2017-09-12 16:07:41
好了,我找到了问题所在。
这个问题是因为我放入反序列化方法的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']
]
]希望这对有麻烦的人有所帮助。
https://stackoverflow.com/questions/46167521
复制相似问题