我正在使用 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
方法?或者还有其他方法可以实现我的目标吗?
最佳答案
好的,我想出了问题。
问题是因为我作为第一个参数放入反序列化方法的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']
]
]
希望这可以帮助遇到麻烦的人。
关于php - Swagger-php - 如何以编程方式添加路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46167521/