Swagger (OpenAPI 3.0) 仅在 Post 上隐藏字段,不在 Put 上隐藏字段

Buz*_*zet 7 java spring swagger openapi

我想在我的 REST API 中实现 2 个端点:

@PostMapping("/example")
public ObjectResponse postObject(@RequestBody Example example){... //Add new Example to DB}

@PutMapping("/example")
public ObjectResponse postObject(@RequestBody Example example){...//Update existing Example}
Run Code Online (Sandbox Code Playgroud)

我的示例可能如下所示:

public class Example{
   @Id
   @Hidden
   private String id;
   private String somethingCool;
}
Run Code Online (Sandbox Code Playgroud)

我想隐藏ID,这样使用Post的用户就不会向我发送带有ID的请求。我想让它由我的 mongoDB 生成。

在另一个用例中,在 Put 期间必须发送 ID 以便识别应更新的对象。但我的 Swagger 3.0 上的 ID 字段也隐藏在这里。

如何在我的帖子中隐藏它,但在我的看跌期权中显示它?

多谢!

小智 0

我的解决方案基于添加带有标记的类并使用 @JsonView 注释。更多详情请点击此处