在 Swagger 文档中隐藏控制器参数

Hide controller parameter in Swagger documentation

我正在使用 swagger-jersey2-jaxrs 生成 swagger.json。这是我的 java 代码:

@Path("/example")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiImplicitParams({
        @ApiImplicitParam(name = "object", required = true, dataTypeClass = MyObject.class, paramType = "body")
})
@ApiOperation(value = "Return one entity", notes = "Returns one entity at random", response = CommonResponse.class)
public String getStuff(String requestString) {...}

结果我得到了这个 swagger.json 文件:

"parameters": [
          {
            "in": "body",
            "name": "body", // SHOULD BE REMOVED
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "body",
            "name": "object", // I ONLY WANT THIS
            "required": true,
            "schema": {
              "$ref": "#/definitions/MyObject"
            }
          }
        ]

据我所知String requestString默认会生成参数name="body"。我怎样才能删除它?我只是想让我的参数 name="object" 出现。

通过使用 io.swagger.annotations 中的 @ApiParam 注释,您可以隐藏参数。为此,请将字段 hidden 设置为 true

...
public String getStuff(
    @ApiParam(hidden = true) String requestString) {...}