Camel REST DSL 为 Swagger 设置示例值 UI

Camel REST DSL set Example Value for Swagger UI

是否可行,如果可行,如何在 Java 中使用 Camel REST DSL 设置 Swagger UI 的示例值?

我 运行 Swagger UI 来自 org.webjars 依赖 Spring Boot.

rest("/test").description("Some description").consumes("application/json").produces("application/json")
                .post("/trigger").id("trigger")
                .description("Another description")
                .type(Map.class).param().name("body").type(body).description("More description"))
                .required(true).example(readJson.getJson("json_example.txt")).endParam()
                .route().bean(new Service(), "Trigger");

readJson 得到 JSON 作为字符串。 看起来 .example() 被忽略了,Swagger UI.

中什么也没有出现

它总是在示例值中显示“字符串”值,如下图所示。

作为解决方案,我使用下一个代码创建了 Java POJO class:

public class User{
    public String user_id;
    public String user_name;
}

然后我将 class 链接到 SpringBootRouter 中的 Camel REST DSL class:

...
rest("/test").description("Some description").consumes("application/json").produces("application/json")
                .post("/trigger").id("trigger")
                .description("Another description")
                .type(User.class).param().name("body").type(body).description("More description"))
                .required(true).endParam()
                .route().bean(new Service(), "Trigger");
...

这是结果:

如有更好的解决方法,请告知

更新:

为了替换字符串的默认值 "string" 或 int 的 0 或布尔值的 true,我使用了 ApiModelProperty,如下所示:

import io.swagger.annotations.ApiModelProperty;
    
public class User{
    @ApiModelProperty(example = "1165")
    public String user_id;
    @ApiModelProperty(example = "Bob")
    public String user_name;
}

这是最终结果:

在你使用的 swagger v3 中

@Model(description = "The user name", example = "Bob")
public String user_name;