3

我正在将 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);

我不知道我做得对。有人用过 Swaggermerge方法或mergeProperties方法吗?还是有其他方法可以实现我的目标?

4

1 回答 1

2

好的,我发现了问题所在。

问题是因为我作为第一个参数放入反序列化方法的 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']
    ]
]

希望这可以帮助遇到麻烦的人。

于 2017-09-12T08:07:41.243 回答