V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lincya
V2EX  ›  问与答

Swaggerui 感觉不好用啊~

  •  
  •   lincya · 2020-12-23 14:24:00 +08:00 · 1274 次点击
    这是一个创建于 1455 天前的主题,其中的信息可能已经有所发展或是发生改变。

    更新到了 knife4j

    需求: 所有的 controller 都返回了同一个响应类,如:

    public class ResData{

    int code;

    Object data;

    String message; }

    而根据不同的情况,data 里面存放不同的数据

    问题: knife4j 无法通过注解配置或其他方式,给 data 填入特定的参数 如:

    {code: 1, data:{account:"10077", username:"小明", id:"100}}

    这样的数据就难以直观地显示了

    7 条回复    2020-12-24 16:14:30 +08:00
    starlz
        1
    starlz  
       2020-12-23 17:16:22 +08:00
    你是想要 swagger 展示 data 里各个属性的说明吗?
    hly9469
        2
    hly9469  
       2020-12-23 17:18:21 +08:00 via iPhone
    所以为什么不用泛型
    starlz
        3
    starlz  
       2020-12-23 17:18:42 +08:00
    如果是的话,ResData 改成 ResData<T>; Object data 改成 T data 并在 controller 的返回方法上加上泛型,然后在对应的实体加注解就行了
    lincya
        4
    lincya  
    OP
       2020-12-24 15:32:46 +08:00
    @starlz
    @hly9469 哈哈感谢大佬
    lincya
        5
    lincya  
    OP
       2020-12-24 15:33:37 +08:00
    @starlz 请问大佬,如果我自己定义了一堆状态码,如
    lincya
        6
    lincya  
    OP
       2020-12-24 15:34:27 +08:00
    @ApiModel(description = "自定义响应状态码")
    public class ResCode {

    // 请求成功
    @ApiModelProperty(name = "0", value = "(0) 请求成功")
    public int OK = 0;

    // 失败
    @ApiModelProperty(name = "-1", value = "(-1) 请求失败")
    public int ERROR = -1;
    }

    这样的有办法放在第一问里面的 code 里面,在界面上显示出来吗
    hly9469
        7
    hly9469  
       2020-12-24 16:14:30 +08:00 via iPhone
    @lincya rescode 如果想实现你想要的效果,推荐用枚举,相应的 json 序列化时总注解标注下 jsonvalue
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3529 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:42 · PVG 12:42 · LAX 20:42 · JFK 23:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.