Swagger用户界面的Camel REST DSL集合示例值

qjp7pelc  于 2022-11-07  发布在  Apache
关注(0)|答案(2)|浏览(189)

是否可以,如果可以,如何在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中未显示任何内容。
它总是在示例值中显示“字符串”值,如下图所示。

nfzehxib

nfzehxib1#

作为解决方案,我使用下面的代码创建了Java POJO类:

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

然后,我将该类链接到SpringBootRouter类中的CamelRESTDSL:

...
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的默认值"string",int的默认值0,Boolean的默认值true,我使用了ApiModelProperty,如下所示:

import io.swagger.annotations.ApiModelProperty;

public class User{
    @ApiModelProperty(example = "1165")
    public String user_id;
    @ApiModelProperty(example = "Bob")
    public String user_name;
}

而这就是最后的结果:

zqry0prt

zqry0prt2#

在swagger v3中,您使用

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

相关问题