php - Swagger-php - 如何以编程方式添加路径?

标签 php json swagger swagger-php

我正在使用 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/

相关文章:

javascript - 更改时自动保存的最佳方法

json - Aeson fromJSON 实例

java - Swagger ui 未加载 swagger api json

c# - 要在 Web api 中发布的 TimeSpan 属性的有效值? C#

php - 如何将日期字符串转换为我的日期时间格式?

php - 如何检测字符串中的非 ASCII 字符?

javascript - 如何将猫头鹰轮播添加到首页

json - 在 Swift 中使类默认符合 Codable

javascript - JSON.parse 后对象中的函数不再是函数

java - Micronaut(Gradle 和 Java)-启用安全性后无法访问 Swagger 集成 View