Swagger-POJO中的某些字段对于某些请求是必需的,而对于其他请求是可选的

时间:2018-07-20 17:47:42

标签: spring-boot swagger

相关问题:Want to document optional JSON parameters in Swagger

从相关问题开始,我知道我可以在POJO字段上使用@ApiModelParam将其标记为必需或可选。但是,假设我有一个POJO,它用作多个API的数据传输对象(DTO),和/或用作同一API的输入和输出参数。如果该字段的必需/可选状态根据上下文而有所不同(正在使用哪个API,无论是输入还是输出参数,等等),是否有办法轻松地在Swagger中进行记录?

作为一个例子,假设我有以下POJO:

public class myPojo {
    private String val1;
    private String val2;
    private String val3;
}

现在,举例来说,val1是数据库表的ID。创建时,我不想设置val1。我希望数据库为我分配一个唯一的PK。但是,当我从创建调用将myPojo返回给调用者时,必须将val1设置为确保它在数据库中。因此,我的create API将val1输入为可选,输出为必需。

我们也说我有一个更新操作。对于更新操作,需要一个ID(因此在输入和输出上都需要val1),但是对于我的更新操作,只需要需要更新的参数(val2或val3)即可(假设使用update操作来null字段不在范围内)。因此,即使在创建时需要val2和val3在更新时也是可选的。

有没有办法做到这一点?

0 个答案:

没有答案