lincya
V2EX  ›  问与答

Swaggerui 感觉不好用啊~

  •  
  •   lincya · Dec 23, 2020 · 2239 views
    This topic created in 2152 days ago, the information mentioned may be changed or developed.

    更新到了 knife4j

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

    public class ResData{

    int code;

    Object data;

    String message; }

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

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

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

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

    7 replies  •  2020-12-24 16:14:30 +08:00
    starlz
    starlz
    Dec 23, 2020
    1
    你是想要 swagger 展示 data 里各个属性的说明吗?
    hly9469
    hly9469
    Dec 23, 2020 via iPhone
    2
    所以为什么不用泛型
    starlz
    starlz
    Dec 23, 2020
    3
    如果是的话,ResData 改成 ResData<T>; Object data 改成 T data 并在 controller 的返回方法上加上泛型,然后在对应的实体加注解就行了
    lincya
    lincya
    OP
    Dec 24, 2020
    4
    @starlz
    @hly9469 哈哈感谢大佬
    lincya
    lincya
    OP
    Dec 24, 2020
    5
    @starlz 请问大佬,如果我自己定义了一堆状态码,如
    lincya
    lincya
    OP
    Dec 24, 2020
    6
    @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
    hly9469
    Dec 24, 2020 via iPhone
    7
    @lincya rescode 如果想实现你想要的效果,推荐用枚举,相应的 json 序列化时总注解标注下 jsonvalue
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2090 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 03:47 · PVG 11:47 · LAX 19:47 · JFK 22:47
    ♥ Do have faith in what you're doing.