在我的Spring Boot rest api中,我有以下类:

@Entity
@Table(name="Items")
@JsonPropertyOrder({ "itemId", "description", "viewed" })
public class Item {

    @ApiModelProperty(notes="Id of the item.", required=true, value="100000")
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @JsonProperty(access=Access.READ_ONLY)
    private int itemId = 0;
    @ApiModelProperty(notes="Item description.", required=true, value="Item1")
    @NotNull
    @Size(min=1, max=256)
    private String description;
    private int viewed;

    public int getItemId() {
        return this.itemId;
    }

    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public int getViewed() {
        return this.viewed;
    }
}


当我执行请求时,将遵循JsonPropertyOrder,但是,在Swagger UI(和Swagger文档)中,属性被列为描述,itemId,已查看。即按字母顺序。我从来没有打开过字母排序功能,所以不确定为什么要这样做...有什么办法可以关闭它吗?这样做是为了对我所有按照常识/逻辑顺序排列的类进行的……

最佳答案

您可以使用ApiModelProperty#position定义属性显示的顺序。

例:

class MyClass {
  @ApiModelProperty(position = 0)
  String myFirstProperty;

  @ApiModelProperty(position = 1)
  String mySecondProperty;
}


这不是最方便的方法,但是我找不到其他方法可以实现此目的...

关于java - 配置Springfox Swagger如何订购属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59147580/

10-11 22:26
查看更多