在Swagger中记录Map的可能值

时间:2019-06-24 19:05:33

标签: jersey jax-rs swagger swagger-ui

我有一个JAX-RS方法,该方法采用Map来促进部分更新。

   @POST
   @Consumes(MediaType.APPLICATION_JSON)
   @Produces(MediaType.APPLICATION_JSON)
   @Path("/{id}/edit")
   public Response edit(HashMap<String, Object> data)

我不能使用补丁,长话短说。 我需要记录客户端可以发送哪些参数,以便它们可以在宽大的UI中看到它们。一种方法是使用@ApiImplicitParam

@ApiImplicitParams({
    @ApiImplicitParam(name = "payload", value = "payload", required = true, dataType = "com.me.PartialUpdatePerson", paramType = "body"),
})

这是一个不错的解决方法。 PartialUpdatePerson是一个类,其中包含允许发送的各种参数。

问题出在醒目的UI中,它仍然向我显示了带有地图的身体。样本值为:

{
  "additionalProp1": {},
  "additionalProp2": {},
  "additionalProp3": {}
}

以及有效载荷。

无论如何,我可以告诉你,不是为了证明这一点吗?即从文档角度忽略HashMap数据?我没有使用Spring,所以无法使用@ApiIgnore。

谢谢

1 个答案:

答案 0 :(得分:0)

public Response edit(@ApiParam(hidden = true) HashMap<String, Object> data)