Swagger springfox在POST上隐藏模型属性

RG1*_*RG1 11 swagger swagger-ui

想知道如何在POST上隐藏Swagger中的模型属性.我试过Swagger-springmvc(0.9.3)和Springfox(支持swagger规范2.0)无济于事.

问题是我希望通过Swagger在GET请求中看到这一点.但不是POST请求,因为id是自动分配的,我想隐藏它只是为了POST请求.

public class RestModel {
   private int id;
   @JsonProperty
   private String name;

   @JsonProperty
   public int getId() {
       return 0;
   }

   @JsonIgnore
   public void setId(int customerId) {
       this.customerId = customerId;
   }

   public int getName() {
       return "abc";
   }

   public void setName(String name) {
       this.name = name;
   }
}
Run Code Online (Sandbox Code Playgroud)

所以在GET上,我应该看到:

{
  "id": 0,
  "name" : "abc"
}
Run Code Online (Sandbox Code Playgroud)

在POST上,我应该看到:

{
   "name"
}
Run Code Online (Sandbox Code Playgroud)

尝试添加:@ApiModelProperty(readonly = true).但这没有帮助.

Dil*_*nan 2

不幸的是,springfox 目前不支持不同的请求和响应模型。目前的想法是,我们将来可能会使用 @JsonView 支持此功能。

  • 我可以看到 Swagger 中使用 @JsonIgnore 忽略了字段,但这会阻止字段在所有请求(POST 和 GET 等)上序列化到客户端,并影响业务逻辑。如果能够通过 API - IE(JsonIgnore 或 JsonView)仅定义文档而不影响业务功能,那就太好了 (2认同)

归档时间:

查看次数:

3761 次

最近记录:

9 年,8 月 前