自定义Springfox代

时间:2017-02-17 11:06:06

标签: spring-boot swagger springfox

我正在使用springboot与springfox生成swagger API。

我有两个问题与springfox: 1)它不支持继承 2)它不支持JsonAnyGetter(就像我想的那样)

我可以覆盖json生成以自定义json并在运行时吗?

对于第一种情况,我想为每个子类型添加“allOf”。

对于第二种情况,我想添加一个自定义字段。

我的班级是分页的通用类。返回“resourceName”字段下的分页信息和列表。这是一个参数。 狗的PageWrapper将导致:

{
  "paging": { ...paging info ...},
  "dogs": [
   .. list of dogs ..
  ]
}

班级:

@ApiModel(value = "Page", description = "Page of results")
public class PageWrapper<T> {

    @JsonIgnore
    private List<T> objects;

    @JsonProperty("paging")
    private Paging paging;

    @JsonIgnore
    private String objectsName = "data";

    public PageWrapper(Page<T> page, String objectsName) {
        if (StringUtils.isNotBlank(objectsName)) {
            this.objectsName = objectsName;
        }
        this.objects = page.getContent();
        this.paging = new Paging(page.getTotalElements(), page.getNumber() * page.getSize() + 1, page.getSize());
    }

    @JsonAnyGetter
    @ApiModelProperty(name = "content", value = "Page content")
    public Map<String, List<T>> data() {
        Map<String, List<T>> datas = new HashMap<>();
        datas.put(objectsName, objects);
        return datas;
    }
...

0 个答案:

没有答案